用VIM中的新行和模式替换CarriageReturn

时间:2016-05-25 06:59:27

标签: bash vim awk sed

我有一个有三行的file.txt

line1
line2
line3

我在vim中打开file.txt 我想用一个字符串为“foo”的新行替换每个CR(回车符),有些事情是这样的。

$ cat file.txt
line1
foo
line2
foo
line3
foo

还在bash脚本中查找awk,sed和其他任何东西的可能性。

4 个答案:

答案 0 :(得分:2)

使用sed,如果您只想用foo替换回车:

sed 's/\x0D$/\nfoo/' file.txt

在每行之后添加一行字符串foo

sed 's/$/&\nfoo/' file.txt

答案 1 :(得分:2)

您可以在Vim中使用此替换:

:%s/\n/&foo&

或者这个宏:

:%g/^/norm ofoo

答案 2 :(得分:1)

$ awk '{print $0 "\nfoo"}' file
line1
foo
line2
foo
line3
foo

答案 3 :(得分:0)

此模式将在vim中执行您想要的操作。

   :%s/\n/^Mfoo^M/g

要在模式中插入^M,请按 Ctrl + V ,然后按 Enter 。  ^M会插入换行符,而在模式中会逐字插入<CR>

而不是^M,您可以将\r用于Linux计算机。

    :%s/\n/\rfoo\r/g