在使用sed添加行的同时在单词之前插入空格

时间:2016-09-30 09:27:19

标签: sed

我的文件内容 -

abc
def

我想在abc之后添加两行,其前面有空格

我的最终文件内容应为 -

abc
    123
def

我正在使用以下命令,但不适合我,请帮助我

sudo sed -i "/abc/a\\\123" file.txt

注意 - 行之间没有空格,我只想在新行之前放置一些空格(即在行123之前)

3 个答案:

答案 0 :(得分:4)

您可以使用此sed

sed -i '/abc/a\    123' file

例如:

$ sed '/abc/a\    123' file
abc
    123
def

答案 1 :(得分:0)

以下是awk解决方案,如果您对awk开放。

示例输入:

cat infile
abc
def

<强>解释

如果找到模式abc,请使用当前行更新当前行,然后使用换行符后跟123。并且1会调用awk的默认打印操作。

注意:使用名为awk的{​​{1}}内置变量打印换行符,该变量默认设置为换行符。

ORS

要在orignal文件中进行更改:

awk '/abc/ {$0=$0 ORS "    123" }1' infile
abc
    123
def

答案 2 :(得分:0)

只需使用awk清晰度,便携性等:

awk '{print} /abc/{print "    123"}' file