2016-12-04 7 views
0

Es gibt zwei Instanzen eines Worts music in einer Datei.So verwenden Sie sed gegen bestimmte Zeile in einer Datei

Hello music 
Goodbye music 

Wenn ich sed verwenden, um eine Instanz von music nur zu ersetzen, wo grep Hello angewandt wird, was würde ich brauche, um einen sed comand hinzufügen?

Derzeit sed -i -e "s/$olmusic/$newmusic/g" file.txt ersetzt jede Instanz von $ oldmusic in einer Datei, aber ich brauche es nur zu ersetzen, wo die Bedingung grep erfüllt ist.

Antwort

1

Ich schlage vor:

sed -i "/Hello/{s/$olmusic/$newmusic/}" file.txt 
0

sed bietet einen regulären Ausdruck als address zu verwenden:

sed -i -e "/Hello/s/$olmusic/$newmusic/" file.txt 
Verwandte Themen