2010-07-27 14 views
0

Je dois supprimer la même ligne dans un grand nombre de fichiers texte. J'ai essayé d'utiliser sed, mais je ne peux pas l'obtenir pour supprimer le caractère de nouvelle ligne à la fin. Ce qui suit supprime avec succès la ligne, mais pas la nouvelle ligne:Supprimer la ligne se terminant par un caractère de retour à la ligne dans le fichier texte

sed -i -e 's/VERSION:1//' *.txt 

J'ai essayé d'utiliser ce qui suit pour supprimer le saut de ligne aussi, mais il ne fonctionne pas:

sed -i -e 's/VERSION:1\n//' *.txt 

est-il de toute façon de spécifier un newline dans une commande de substitution sed OU existe-t-il un autre outil de ligne de commande que je peux utiliser pour atteindre mon objectif? Merci

Répondre

3

Vous pouvez utiliser la commande sed:

sed -i -e '/VERSION:1/d' 

pour cela.

La transcription suivante donne un exemple:

pax> echo 'hello 
> goodbye 
> hello again' | sed '/oo/d' 
hello 
hello again 

Vous devriez également vérifier si vous voulez faire correspondre des lignes entières avec, par exemple:

sed -i -e '/^VERSION:1$/d' 

depuis, tel qu'il est, qui sera également supprimer les lignes comme suit:

VERSION:10 
CONVERSION:1 
2
sed '/VERSION:1/{:q;N;s/VERSION\n//g;t q}' file