Shell:在给定的文本行之间添加一个新行

时间:2009-03-25 18:59:55

标签: text shell sed awk newline

这个问题不是的问题是如何在与模式匹配的每一行的上方或上方添加新行。

我要做的是在一行上存在的模式之间添加一个新行。

这是一个例子。

之前的

  

星期一:8 AM-10PM

后的

  

星期一:

     

8 AM-10PM

因此,在这种情况下,在每个“星期一”模式之后插入新行。

4 个答案:

答案 0 :(得分:6)

echo 'Monday:8am-10pm' | sed -e 's/^Monday:/&\n/'

对于最多为“:”的字符:

echo 'Monday:8am-10pm' | sed -e 's/^[^:]*:/&\n/'

答案 1 :(得分:5)

sed 's/Monday:/&\n/g'

答案 2 :(得分:2)

sed 's/Monday:/&\n\n/g'

将替换它们(假设您需要2个换行符,如上所示)

答案 3 :(得分:0)

使用sed:

echo "Monday:8am-10pm" | sed -e 's/:/:\n\n/'