Bonjour,
J'aurais besoin de supprimer le dernier retour chariot présent dans un fichier :
Ligne 1
Ligne 2
<- retour chariot à supprimer
Quelqu'un à une idée?
Merci d'avance.
Bonjour,
J'aurais besoin de supprimer le dernier retour chariot présent dans un fichier :
Ligne 1
Ligne 2
<- retour chariot à supprimer
Quelqu'un à une idée?
Merci d'avance.
Nous avons avons un problème d'intégration par la suite de ce fichier dans une application JAVA. Le fichier ne peut être intégré que lorsque aucun retour à la ligne n'est présent à la fin du fichier...
Tu peux utiliser un script sed :
Si c'est la dernière ligne, il imprime uniquement s'il y a autre chose que de l'espace puis il va à la fin du script.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 cat "mon_fichier" | sed -n '${ /^[[:blank:]]*$/!p b } p'
Sinon, pour les autres lignes, il imprime.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Que la force de la puissance soit avec le courage de ta sagesse.
Salut,
Merci pour ta réponse mais j'ai toujours mon retour à la ligne malgrès ta solution (j'ai pris tel quel ta commande en modifiant seulement le mon_fichier)
Salut,
Entendons-nous bien...
Il s'agit de passer d'un fichier comme suit :
Le caractère "c" est sur la dernière ligne et mon prompt "$> " est à la ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $> cat plop a b c $>
à ce fichier :
Le caractère "c" est sur la dernière ligne et mon prompt "$> " est sur la même ligne, le caractère "nl" (new line) a été supprimé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $> cat brol a b c$>
Avec un éditeur hexadécimal ça nous donne :
Nous sommes d'accord ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 $> od -a plop 0000000 a nl b nl c nl 0000006 $> od -a brol 0000000 a nl b nl c 0000005 $>
Oui c'est bien ça,
J'ai réussi à trouver une solution qui marche très bien mais je suis sur que l'on peut mieux faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 NB_LIGNES_FIC=`awk 'END {print NR}' ${FILE_OUT}` awk -v nb_lignes=${NB_LIGNES_FIC} ' { if ( NR <= nb_lignes-1 ) { print $(0) } }' $FILE_OUT >> $FILE_OUT_TMP awk -v nb_lignes=$NB_LIGNES_FIC ' { if ( NR == nb_lignes ) { print $(0) } }' $FILE_OUT | tr -d '\n' >> $FILE_OUT_TMP mv $FILE_OUT_TMP $FILE_OUT
Partager