Допустим, у меня есть этот файл:
cat > test.txt <<EOF
line one word
line two word
line three word
line one two word
EOF
И скажем, я хочу заменить все слова «два» на «ДВА», inline in-place в файле test. txt
.
То, что я делаю, обычно строю "предварительный просмотр" (с помощью -n
не печатать строки, а затем с помощью / p
- печатать только совпавшие строки):
$ sed -n 's/two/TWO/gp' test.txt
line TWO word
line one TWO word
... а затем я обычно выполняю фактическую замену на месте (с -i
и без / p
):
$ sed -i 's/two/TWO/g' test.txt
$ cat test.txt
line one word
line TWO word
line three word
line one TWO word
Есть ли способ получить sed
, чтобы обе строки изменения на месте в файле, и выводили измененные строки на стандартный вывод из одной командной строки?