我想搜索具有
fudge
的行并将它们放在上一行的末尾。
有人可以向我解释为什么以下内容在 vim 中有效但在 sed 中无效吗? (即,如果我用 vim 打开名为 test
的文件并键入 %s/\(.*\)\n\(fudge\)/\1 \2/g
,它就会执行我想要的操作)。
echo -e 'foo bar baz\nfudge' > test
sed -e 's/\(.*\)\n\(fudge\)/\1 \2/g' test
$ printf 'foo bar baz\nfudge\n' > file
$ sed -Ez 's/(.*)\n(fudge)/\1 \2/' file
foo bar baz fudge