Odpowiedzi:
Jeśli dopasowujesz podłańcuch całej linii, możesz użyć s
polecenia sed z wyrażeniem regularnym, aby wycierać resztę linii:
sed -i 's/^.*foo.*$/another string/' myfile.txt
lub użyj c
polecenia, aby zastąpić dopasowaną linię za jednym razem:
sed -i '/foo/ { c \
another string
}' myfile.txt
Jeśli nie chcesz wpisywać poleceń wielowierszowych w wierszu polecenia, możesz zamiast tego umieścić je w skrypcie:
$ cat foo.sed
/foo/ { c \
another string
}
$ sed -i -f foo.sed myfile.txt
}'
jest na osobnej linii od another string
: zamiennik jest wszystkim w drugiej linii, w tym }
jeśli umieścisz ją tam.