Sed比赛前插入换行符

时间:2018-10-15 09:39:00

标签: linux sed

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

例如,一个文本文件有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

1 个答案:

答案 0 :(得分:1)

根据GNU手册,i命令实际上是i\

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

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