【发布时间】:2016-09-22 15:09:09
【问题描述】:
我有一个包含三行的 file.txt
line1
line2
line3
当我在 vim 中打开 file.txt 我想用具有字符串“foo”的新行替换每个 CR(回车),就像这样。
$ cat file.txt
line1
foo
line2
foo
line3
foo
还在 bash 脚本中寻找 awk、sed 和其他任何东西的可能性。
【问题讨论】:
我有一个包含三行的 file.txt
line1
line2
line3
当我在 vim 中打开 file.txt 我想用具有字符串“foo”的新行替换每个 CR(回车),就像这样。
$ cat file.txt
line1
foo
line2
foo
line3
foo
还在 bash 脚本中寻找 awk、sed 和其他任何东西的可能性。
【问题讨论】:
使用 sed,如果你只想用 foo 替换回车:
sed 's/\x0D$/\nfoo/' file.txt
在每一行之后添加一个带有字符串foo 的行:
sed 's/$/&\nfoo/' file.txt
【讨论】:
你可以在 Vim 中使用这个替换:
:%s/\n/&foo&
或者这个宏:
:%g/^/norm ofoo
【讨论】:
$ awk '{print $0 "\nfoo"}' file
line1
foo
line2
foo
line3
foo
【讨论】:
这个模式会在 vim 中做你想做的事情。
:%s/\n/^Mfoo^M/g
要在模式中插入^M,请按Ctrl+V,然后按Enter。
^M 插入换行符,而在模式中将插入 <,C,R 和 >
您可以在 Linux 机器上使用 \r,而不是 ^M。
:%s/\n/\rfoo\r/g
【讨论】: