sed: одновременная замена на месте и распечатка измененных строк?

Допустим, у меня есть этот файл:

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 , чтобы обе строки изменения на месте в файле, и выводили измененные строки на стандартный вывод из одной командной строки?

7
задан amit_g 23 November 2011 в 03:11
поделиться