Bonjours,
J'ai un fichier ou le champ séparateur est | et il est présent après le dernier champ.
Je cherche a compter le nombre de champ sur la première ligne qui a ce format:
Comme vous pouvez le constater, Il me suffit de compter ne nombre de | pour avoir le nombre de champs.(dans ce cas 14)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 head -n 1 ../tmp/TATA_20080830120000.log TATA||2008-08-19 00:00:55|16|1|login|TITI|TOTO|TUTU|13|301||1||
Apres analyse, la commande head rajoute un caractère non imprimable de fin de ligne LF.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |wc -m 15
J'ai donc tenté de rediriger vers tr:
D'où ma question: comment éliminer le caractère LF ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |tr -d \r | wc -m 15
J'ai lu dans le man tr qu'on pouvait éliminer un caractère avec son code hexa mais ca ne marche pas:
Quelqu'un a une solution ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |tr -d \0x0A | wc -m 15
Eric.
Partager