Je veux nettoyer un fichier un supprimant les lignes vides :
#sed /^$/d fichier > fichier
La commande fonctionne en sortie mais mon fichier est vide ?
Je ne comprends pas !?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
"laurent[pas-spam]" wrote in message <4163d0d1$0$739$:
Je veux nettoyer un fichier un supprimant les lignes vides : #sed /^$/d fichier > fichier La commande fonctionne en sortie mais mon fichier est vide ? Je ne comprends pas !?
En protégeant le /^$/d de toute interprétation par le shell, avec une paire de ' ', ça marcherait probablement mieux.
"laurent[pas-spam]" wrote in message
<4163d0d1$0$739$636a15ce@news.free.fr>:
Je veux nettoyer un fichier un supprimant les lignes vides :
#sed /^$/d fichier > fichier
La commande fonctionne en sortie mais mon fichier est vide ?
Je ne comprends pas !?
En protégeant le /^$/d de toute interprétation par le shell, avec une paire
de ' ', ça marcherait probablement mieux.
"laurent[pas-spam]" wrote in message <4163d0d1$0$739$:
Je veux nettoyer un fichier un supprimant les lignes vides : #sed /^$/d fichier > fichier La commande fonctionne en sortie mais mon fichier est vide ? Je ne comprends pas !?
En protégeant le /^$/d de toute interprétation par le shell, avec une paire de ' ', ça marcherait probablement mieux.
Marc Boyer
In article <4163d0d1$0$739$, laurent[pas-spam] wrote:
Bonjour,
Je veux nettoyer un fichier un supprimant les lignes vides : #sed /^$/d fichier > fichier La commande fonctionne en sortie mais mon fichier est vide ?
Marc Boyer -- La contractualisation de la recherche, c'est me donner de l'argent pour faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce que je sais faire, je le fais sans moyens...
In article <4163d0d1$0$739$636a15ce@news.free.fr>, laurent[pas-spam] wrote:
Bonjour,
Je veux nettoyer un fichier un supprimant les lignes vides :
#sed /^$/d fichier > fichier
La commande fonctionne en sortie mais mon fichier est vide ?
Marc Boyer
--
La contractualisation de la recherche, c'est me donner de l'argent pour
faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce
que je sais faire, je le fais sans moyens...
Marc Boyer -- La contractualisation de la recherche, c'est me donner de l'argent pour faire ce que je ne sais pas faire, que je fais donc mal, pendant que ce que je sais faire, je le fais sans moyens...
David LE BOURGEOIS
Bonjour,
Bonjour.
Je veux nettoyer un fichier un supprimant les lignes vides : #sed /^$/d fichier > fichier La commande fonctionne en sortie mais mon fichier est vide ? Je ne comprends pas !?
C'est normal : la redirection commence avant l'exécution de la commande. Le fichier est écrasé avant d'être lu.
Il faut passer par un fichier temporaire : sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne : perl -i -ne 'print unless /^$/' fichier
-- David LE BOURGEOIS
Bonjour,
Bonjour.
Je veux nettoyer un fichier un supprimant les lignes vides :
#sed /^$/d fichier > fichier
La commande fonctionne en sortie mais mon fichier est vide ?
Je ne comprends pas !?
C'est normal : la redirection commence avant l'exécution de la commande.
Le fichier est écrasé avant d'être lu.
Il faut passer par un fichier temporaire :
sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne :
perl -i -ne 'print unless /^$/' fichier
Je veux nettoyer un fichier un supprimant les lignes vides : #sed /^$/d fichier > fichier La commande fonctionne en sortie mais mon fichier est vide ? Je ne comprends pas !?
C'est normal : la redirection commence avant l'exécution de la commande. Le fichier est écrasé avant d'être lu.
Il faut passer par un fichier temporaire : sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne : perl -i -ne 'print unless /^$/' fichier
-- David LE BOURGEOIS
Stephane Chazelas
2004-10-06, 16:55(+02), David LE BOURGEOIS: [...]
Il faut passer par un fichier temporaire : sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne : perl -i -ne 'print unless /^$/' fichier
Ou alors:
sed -i '/./!d' fichier
(avec une version recente du GNU sed)
ou alors:
{ rm fichier && sed '/./!d' > fichier } < fichier
Ces trois versions (avec perl) peuvent etre dangereuse dans le sens ou en cas de pepin le fichier peut etre perdu. D'ou l'interet d'utiliser un fichier temporaire:
perl -i.back ou sed -i.back
au lieu de -i tout court.
-- Stephane
2004-10-06, 16:55(+02), David LE BOURGEOIS:
[...]
Il faut passer par un fichier temporaire :
sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne :
perl -i -ne 'print unless /^$/' fichier
Ou alors:
sed -i '/./!d' fichier
(avec une version recente du GNU sed)
ou alors:
{ rm fichier && sed '/./!d' > fichier } < fichier
Ces trois versions (avec perl) peuvent etre dangereuse dans le
sens ou en cas de pepin le fichier peut etre perdu. D'ou
l'interet d'utiliser un fichier temporaire:
Il faut passer par un fichier temporaire : sed '/^$/d' "fichier" > "fichier.$$" && mv "fichier.$$" "fichier"
Sinon, en Perl ça donne : perl -i -ne 'print unless /^$/' fichier
Ou alors:
sed -i '/./!d' fichier
(avec une version recente du GNU sed)
ou alors:
{ rm fichier && sed '/./!d' > fichier } < fichier
Ces trois versions (avec perl) peuvent etre dangereuse dans le sens ou en cas de pepin le fichier peut etre perdu. D'ou l'interet d'utiliser un fichier temporaire: