【问题标题】:Substitute CarriageReturn with new line and pattern in VIM在 VIM 中用新的线和图案替换回车
【发布时间】: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 和其他任何东西的可能性。

【问题讨论】:

    标签: bash vim awk sed


    【解决方案1】:

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

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

    在每一行之后添加一个带有字符串foo 的行:

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

    【讨论】:

      【解决方案2】:

      你可以在 Vim 中使用这个替换:

      :%s/\n/&foo&
      

      或者这个宏:

      :%g/^/norm ofoo
      

      【讨论】:

        【解决方案3】:
        $ awk '{print $0 "\nfoo"}' file
        line1
        foo
        line2
        foo
        line3
        foo
        

        【讨论】:

          【解决方案4】:

          这个模式会在 vim 中做你想做的事情。

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

          要在模式中插入^M,请按Ctrl+V,然后按Enter^M 插入换行符,而在模式中将插入 <,C,R>

          您可以在 Linux 机器上使用 \r,而不是 ^M

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2012-11-09
            • 1970-01-01
            • 1970-01-01
            • 2020-02-05
            • 2017-06-15
            • 2017-06-28
            • 2010-12-07
            相关资源
            最近更新 更多