Скажите, у меня есть этот файл:
cat > test.txt <<EOF
line one word
line two word
line three word
line one two word
EOF
И скажем, я хочу заменить все слова «два» на «ДВА», inline вместо в файле 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
для обеих строк изменений на месте в файле, и распечатать измененные строки в стандартный вывод из одной командной строки?