Cela devrait être incroyablement facile, mais je ne peux pas le faire fonctionner. Je veux juste utiliser sed
pour remplacer d'une chaîne à la fin d'une ligne. Par exemple, si j'ai le fichier de données suivant:
one two three five
four two five five six
six one two seven four
et je veux remplacer du mot "deux" jusqu'à la fin de la ligne par le mot "BLAH" se terminant par la sortie:
one BLAH
four BLAH
six one BLAH
ça ne serait pas juste:
sed -e 's/two,$/BLAH/g'
Je ne suis pas le meilleur en regex, c'est peut-être le problème
Cela devrait faire ce que vous voulez:
sed 's/two.*/BLAH/'
$ echo " one two three five
> four two five five six
> six one two seven four" | sed 's/two.*/BLAH/'
one BLAH
four BLAH
six one BLAH
Le $
n'est pas nécessaire car le .*
se terminera quand même à la fin de la ligne, et le g
à la fin n'est pas nécessaire car votre première correspondance sera le premier two
à la fin de la ligne.
Utilisez ceci, two<anything any number of times><end of line>
's/two.*$/BLAH/g'
awk
awk '{gsub(/two.*/,"")}1' file
Ruby
Ruby -ne 'print $_.gsub(/two.*/,"")' file