Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/02/2016, à 20:52

argolance

Suppression lignes vides impossible [RÉSOLU]

Bonjour,

Font=Sans-11:Italic
Width=3
Height=22
Corner=4

Active
Foreground=#31ff17
Background=#888888:#353535
Outline=#888888


Foreground=#b0b0b0
Background=#353535
Opacity=08

Outline=#4C4C4C

Voici le contenu d'un fichier 'test' dans lequel je souhaite supprimer les lignes vides.

sed '/^$/D' test
awk NF test
awk '/./' test
cat test | grep '.'
cat test | grep -v '^$'

J'ai essayé ces commandes mais aucune ne semble marcher: j'ai la berlue ou quoi?

Cordialement.

Dernière modification par argolance (Le 27/02/2016, à 12:25)

Hors ligne

#2 Le 26/02/2016, à 21:41

nam1962

Re : Suppression lignes vides impossible [RÉSOLU]

sed ‘/^$/d’ -i test

?
Depuis que nany m'a rappelé de mettre des -i, je teste çà partout.

Dernière modification par nam1962 (Le 26/02/2016, à 21:42)


[ Modéré ]

Hors ligne

#3 Le 26/02/2016, à 21:51

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

L'option -i c'est pour répercuter la commande directement dans le fichier. Sans le -i c'est pour avoir le résultat en console sans toucher l'original. Le -i n'est donc pas à mettre partout mais seulement là où c'est utile. wink
En tout cas, cela ne change rien au problème posé...

Hors ligne

#4 Le 26/02/2016, à 22:02

nany

Re : Suppression lignes vides impossible [RÉSOLU]

Bonjour,

oui, et je n’ai jamais dit à nam1962 qu’il fallait mettre l’option -i partout.
Sinon, j’ai fait un copier-coller du texte que tu as mis dans ton premier message et les commandes fonctionnent chez moi. Je ne vois donc vraiment pas du tout où pourrait se trouver le problème.
C’est le seul fichier qui te fait ça ?

En ligne

#5 Le 26/02/2016, à 22:34

nam1962

Re : Suppression lignes vides impossible [RÉSOLU]

..je pensais que la commande ne se répercutait pas dans le fichier, comme tu dis wink
et sinon je taquinais nany tongue

Dernière modification par nam1962 (Le 26/02/2016, à 22:34)


[ Modéré ]

Hors ligne

#6 Le 26/02/2016, à 23:10

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

C’est le seul fichier qui te fait ça ?

Ben oui, c'est bien là le soucis...
Mais si tu dis que ça marche pour toi, alors y a autre chose qui "merdouille" mais quoi?

Hors ligne

#7 Le 26/02/2016, à 23:17

pingouinux

Re : Suppression lignes vides impossible [RÉSOLU]

Bonsoir,
Je confirme ce que dit nany en #4 : tes commandes en #1 éliminent bien les lignes vides dans ton fichier exemple.
N'y aurait-il pas des caractères cachés ? Quel est le retour de

hd ton_fichier_test

Hors ligne

#8 Le 27/02/2016, à 00:00

MicP

Re : Suppression lignes vides impossible [RÉSOLU]

Toutes les lignes du fichier test qui ne commencent PAS par un caractère alphabétique seront supprimées :

sed -i '/^[[:alpha:]]/!d' test

Il se peut très bien que les lignes qui paraissent vides contiennent en fait un ou plusieurs espaces,
mais comme elles ne débutent pas par un caractère alphabétique, elles seront supprimées.

Dernière modification par MicP (Le 27/02/2016, à 03:47)

Hors ligne

#9 Le 27/02/2016, à 11:23

Totor

Re : Suppression lignes vides impossible [RÉSOLU]

pingouinux a écrit :

Bonsoir,
Je confirme ce que dit nany en #4 : tes commandes en #1 éliminent bien les lignes vides dans ton fichier exemple.
N'y aurait-il pas des caractères cachés ? Quel est le retour de

hd ton_fichier_test

ou ceci :

cat -e ton_fichier_test

le résultat est plus compréhensible (enfin, je trouve).


-- Lucid Lynx --

Hors ligne

#10 Le 27/02/2016, à 11:26

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

Bonjour,

pingouinux a écrit :

N'y aurait-il pas des caractères cachés ? Quel est le retour de

 hd ton_fichier_test

Un grand merci, là est la solution:
Dans mon éditeur (Geany), lorsque je demande à afficher les caractères de fin de ligne de mon fichier original, je m'aperçois que certains, (dont les lignes vides) sont CR LF (win) et non LF (Unix) et la commande sed ne fonctionne alors plus. Geany permet de transformer les uns en les autres et vice-versa mais quelle ligne de commande permettrait:

  • Soit de supprimer les lignes vides quels que soient le type de sauts de lignes?

  • Transformer un fichier win en fichier unix?

MicP a écrit :

Toutes les lignes du fichier test qui ne commencent PAS par un caractère alphabétique seront supprimées :

L'idée est bonne mais d'un fichier à l’autre, des lignes peuvent commencer par des caractères non alphabétique,s par des espaces ou des tabulations, le caractère <, etc....

Cordialement.

Hors ligne

#11 Le 27/02/2016, à 11:36

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

Nos messages se sont croisés et la commande que tu donnes, confirme la raison du problème (Totor, toujours fidèle au poste...) smile

Totor a écrit :
cat -e ton_fichier_test

le résultat est plus compréhensible (enfin, je trouve).

# cat -e /tmp/jwmtec_tmp/WindowStyle_tmp
WindowStyle=^M$
Font=Sans-11:Bold$
Width=3$
Height=22$
Corner=4$
^M$
Active=^M$
Foreground=#ffffff$
Background=#E9E0BB:#846A49$
Outline=#E9E0BB$
/Active=^M$
$
$
^M$
Foreground=#5f5a4b$
Background=#817d6d:#c4c0b2$
Opacity=0.8$
Outline=#c4c0b2$
$
# 

... et du coup, au moins une des deux questions ci-dessus trouve sa réponse: ^M$
[EDIT] Eh ben non:

sed -i '/^$/d;/^M$/d' /tmp/jwmtec_tmp/WindowStyle_tmp

ne marche pas. sad

Dernière modification par argolance (Le 27/02/2016, à 11:45)

Hors ligne

#12 Le 27/02/2016, à 11:42

erresse

Re : Suppression lignes vides impossible [RÉSOLU]

argolance a écrit :

Transformer un fichier win en fichier unix?

Rien de plus simple, il suffit de supprimer le CR avec un sed...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

En ligne

#13 Le 27/02/2016, à 11:57

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

erresse a écrit :
argolance a écrit :

Transformer un fichier win en fichier unix?

Rien de plus simple, il suffit de supprimer le CR avec un sed...

Très simple en effet,  mais comment exactement, puisque la commande (donnée/testée plus haut en [EDIT]):

sed '^M$/d'

... ne donne apparemment pas le résultat voulu? roll

Dernière modification par argolance (Le 27/02/2016, à 11:58)

Hors ligne

#14 Le 27/02/2016, à 12:11

pingouinux

Re : Suppression lignes vides impossible [RÉSOLU]

Essaye

sed '/^[\x0d]\?$/d' test

Hors ligne

#15 Le 27/02/2016, à 12:21

argolance

Re : Suppression lignes vides impossible [RÉSOLU]

Avec la commande:

dos2unix monfichiertexte

présente sur ma machine, tout baigne...
La commande:

sed '/^[\x0d]\?$/d' test

fonctionne également.

Merci à vous pour votre aide.
Forum génial et très réactif, comme d'hab.

Cordialement.

Dernière modification par argolance (Le 27/02/2016, à 12:24)

Hors ligne