dans le fichier toto, comment récupérer le caractére se situant à la fin de ma ligne.
merci
dans le fichier toto, comment récupérer le caractére se situant à la fin de ma ligne.
merci
Si c'est un fichier texte éventuellement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 awk ' { printf("%c\n",substr($NF,length($NF),length($NF))) }' toto
-2 et -1 parce que le dernier caractère d'une ligne, c'est... le passage à la ligne !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 while read line do nbChar=$(wc -m <<<$line) echo "${line:${nbChar}-2:${nbChar}-1}" done <ton_Fichier
wc -m , compte le nombre de caractére d'un fichier.
Moi j'ai simplement des lignes qui se terminent pas ";" ou sans ";".
je veux simplement faire un test, si ";" present enfin de ligne alors...sinon
en l'occurence wc -m compte le nombre de caractères de chaque lignenbChar=$(wc -m <<<$line)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 while read line do nbChar=$(wc -m <<<$line) if [ "${line: ${nbChar}-2 : ${nbChar}-1}" = ";" ] then echo "OK" else echo "KO" fi done <ton_Fichier
en nbchar, il me renvoie la valeur 1. alors que sur ma ligne, il y a au moins 20 caractere
et tous pass en ko .
je ne suis quand meme pas le seul à avoir le probleme.
Curieux...
Que retourne?
Code : Sélectionner tout - Visualiser dans une fenêtre à part tail ton_fichier | od -c
ça me retourne cela :
0000000 A I D O T O T O _ S M S ; 0 0 ; : 0
0000020 1 : 1 2 ; 1 1 : 1 1 ; 1 1
....
.....
0000102 ; \n
Y a bien un moyen par un grep ou autre commande ?...
il semblerait donc que tout ton fichier est sur une seule ligne...
- C'est grave docteur?
- Non, on peut soigner ça à coup de gnu_sedfaut voir...
Code : Sélectionner tout - Visualiser dans une fenêtre à part sed 's/;/;\n/g'
Bonsoir,
J'utiliserais la commande awk:
Explication:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 awk -F '' ' { if ($NF == ";") { traitement... } }' fichier
Ici, il n'y a pas de séparateur (option -F vide), donc le dernier champ est le dernier caractère.
Partager