tr: supprimer LF en fin de ligne
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:
Code:
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|| |
Comme vous pouvez le constater, Il me suffit de compter ne nombre de | pour avoir le nombre de champs.(dans ce cas 14)
Code:
1 2 3
|
head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |wc -m
15 |
Apres analyse, la commande head rajoute un caractère non imprimable de fin de ligne LF.
J'ai donc tenté de rediriger vers tr:
Code:
1 2 3
|
head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |tr -d \r | wc -m
15 |
D'où ma question: comment éliminer le caractère LF ?
J'ai lu dans le man tr qu'on pouvait éliminer un caractère avec son code hexa mais ca ne marche pas:
Code:
1 2 3
|
head -n 1 ../tmp/TATA_20080830120000.log| sed -e 's/[^'$"|"']//g' |tr -d \0x0A | wc -m
15 |
Quelqu'un a une solution ?
Eric.