OVH Cloud OVH Cloud

Script Bash

3 réponses
Avatar
Tahar
bonjour,
Je dois réaliser un script qui lit un fichier et prend
le dernier champs d'une ligne, ces champs sont séparés
par un /,
Le problème c'est que cut ou awk ne conviennent pas
car la le nombre de champs n'est pas constant par
exemple je peux avoir une fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/x8/2006-04/Transfert_cll_2006_04_17.log
et je veux avoir en output
Transfert_cll_2006_04_17.log et une autre fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/Transfert_cll_2006_03_01.log

et avoir Transfert_cll_2006_03_01.log en output,

Merci pour votre aide






___________________________________________________________________________
Faites de Yahoo! votre page d'accueil sur le web pour retrouver directement vos services préférés : vérifiez vos nouveaux mails, lancez vos recherches et suivez l'actualité en temps réel.
Rendez-vous sur http://fr.yahoo.com/set


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org

3 réponses

Avatar
Pascal Hambourg
Salut,

Tahar a écrit :
bonjour,
Je dois réaliser un script qui lit un fichier et prend
le dernier champs d'une ligne, ces champs sont séparés
par un /,
Le problème c'est que cut ou awk ne conviennent pas
car la le nombre de champs n'est pas constant par
exemple je peux avoir une fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/x8/2006-04/Transfert_cll_2006_04_17.log
et je veux avoir en output
Transfert_cll_2006_04_17.log et une autre fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/Transfert_cll_2006_03_01.log

et avoir Transfert_cll_2006_03_01.log en output,



Et avec sed ?
sed "s%.*/%%"
ou
sed "s/.*///"

(dans la première version % remplace le séparateur traditionnel / car
c'est justement / qu'on recherche, ça évite de l'échapper avec )


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
ced
Bonjour,
Je pense que

cat"$fichier" | while read line ; do
echo ${line##*/}
done

devrait faire ca.
Bonne journée

ced

(ps: désolé d'avoir répondu en privé la 1ere fois)

Tahar a écrit :

bonjour,
Je dois réaliser un script qui lit un fichier et prend
le dernier champs d'une ligne, ces champs sont séparés
par un /,
Le problème c'est que cut ou awk ne conviennent pas
car la le nombre de champs n'est pas constant par
exemple je peux avoir une fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/x8/2006-04/Transfert_cll_2006_04_17.log
et je veux avoir en output
Transfert_cll_2006_04_17.log et une autre fois
/statraw/STATISTIC_RAW//STAT_SOFT/TRANSFERT/log/Transfert_cll_2006_03_01.log

et avoir Transfert_cll_2006_03_01.log en output,

Merci pour votre aide






___________________________________________________________________________
Faites de Yahoo! votre page d'accueil sur le web pour retrouver directement vos services préférés : vérifiez vos nouveaux mails, lancez vos recherches et suivez l'actualité en temps réel.
Rendez-vous sur http://fr.yahoo.com/set








--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact
Avatar
Jacques L'helgoualc'h
Tahar a écrit, lundi 17 avril 2006, à 16:06 :
bonjour,



bonjour,

Je dois réaliser un script qui lit un fichier et prend
le dernier champs d'une ligne, ces champs sont séparés
par un /,
Le problème c'est que cut ou awk ne conviennent pas
car la le nombre de champs n'est pas constant



Awk le fait :

awk -F/ '{print $NF}' fichier

--
Jacques L'helgoualc'h


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et
"Reply-To:"

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact