【问题标题】:Sed Insert a newline before matchSed 在匹配前插入换行符
【发布时间】:2018-10-15 20:48:54
【问题描述】:

我正在尝试在多个文本文件中以随机行号插入一个字符串。在文本文件中添加字符串之前,我想添加一个换行符。

例如,一个文本文件有 4 个段落。

paragraph 1

paragraph 2

paragraph 3

paragraph 4

我希望输出是

paragraph 1

STRING

paragraph 2

paragraph 3

paragraph 4

我的代码工作正常,但它没有在字符串前添加空换行符。

$ for i in *.txt; do sed -i "$(shuf -n 1 -e 2 4 6)i \n\rSTRING \n\r" $i ; done

【问题讨论】:

    标签: linux sed


    【解决方案1】:

    i 命令实际上是i\,来自 GNU 手册:

    'i\'
    'TEXT'
         insert TEXT before a line.
    

    所以n 之前的反斜杠被i 命令“吃掉”了。添加一个额外的反斜杠,它应该可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 2018-07-14
      • 1970-01-01
      • 1970-01-01
      • 2013-03-11
      • 1970-01-01
      相关资源
      最近更新 更多