Probleme avec sed

Résolu/Fermé
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 13 sept. 2007 à 17:51
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 - 14 sept. 2007 à 15:18
bonjour

je souhaite a l'aide d'un script shell supprimer les ligne blanche situé en fin de fichier , jutilise pour cela
sed -i -e :a -e '/^[ |\n|\t]*$/ {$d;N;ba' -e '}'
mais ça marche pas , quelqu'un aurait il une idée??

merci d'avance

16 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
13 sept. 2007 à 17:54
Salut,

Voir : sed trucs et astuces#ligne vide

;-))
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
13 sept. 2007 à 18:05
j'ai deja essayer et ça n'as pas fonctionner
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
13 sept. 2007 à 18:23
Le fichier en question est un fichier Unix ou Windows ? (en rapport aux fins de ligne différentes sur les 2 systèmes)

Peux-tu le mettre en copie sur Cjoint s'il te plait si ce n'est pas du domaine du confidentiel ;-))
0
bonjur,
le fichier en question à traiter est effectivement un fichier créé sous windows, plus précisément sous le bloc-note de windows
et effectivement c'est du code confidentiel
merci de ton aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 sept. 2007 à 10:07
Alors essaie ça (le "^M" s'obtient par la combinaison de touches "CTRL-V" + "CTRL-M") :
sed -e ' s/^M$//' -e :a -e '/^\n*$/ {$d;N;ba' -e '}'
Voir : sed conversion retours chariots dos crlf unix lf

;-))
0
ça m'embete mais ça marche toujour pas ....
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 sept. 2007 à 12:27
Essaie ça alors :
sed -e :a -e '/^\r\n*$/ {$d;N;ba' -e '}'
;-))
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:15
infernal mais toujours pas
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 sept. 2007 à 14:26
Que t'affiches la commandes "cat -A ton_fichier_DOS" comme caractères de fin de ligne et de lignes vides ?

Des "^M$" ???
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:27
effectivement c'est bien des ^M$
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 sept. 2007 à 14:32
Salut,

affiche le résultat de
perl -ne 's/(.)/ord($1)/eg;print' ton_fichier
--
lami20j
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 sept. 2007 à 14:33
Ben chez moi la commande marche bien ;-\
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 sept. 2007 à 14:35
Salut,

des fois c'est vraiment bizarre, c'est pour ça que je prefère la conversion en ASCII, au moins on peut voir exactement ce qu'on doit supprimer ou ajouter à la fin ;-)
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 14:49
les retour a la ligne on pour symbole 13
pour la fin du fichier j'ai :
424713
13
13
13
13
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
14 sept. 2007 à 15:03
Essaye en ASCII alors :
sed 's/\x0D$//'
;-)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
14 sept. 2007 à 15:05
Donc il s'agit bien du Carriage Return \r ;-))
0
vieurou Messages postés 73 Date d'inscription jeudi 13 septembre 2007 Statut Membre Dernière intervention 19 décembre 2007 2
14 sept. 2007 à 15:18
ecxelent , ça fonctionne avec sed -i -e 's/\x0D$//' fichier_à_modifier
0