仅在特定模式之后添加空格到下一行

仅在特定模式之后添加空格到下一行

我发现两年前有人问过这个问题,效果很好。

sed 's/$/      /' SUDIP1>SUDIP2

但我发现如果我在每一行添加空格,它会弄乱后面的sed命令。我想搜索EQU

EQU      
888-111-2222   T   1234

然后向下移动一行并在以下类型的行的末尾添加额外的空格,并保留其间的所有其他行。

888-111-2222   T   1234(6 white spaces here)

该网站上的几个人已将我的问题标记为重复,但事实并非如此。他们指出的问题是在字母 C 出现后搜索一个字符串,然后用另一个字符串替换它。我的问题有所不同,因为它涉及在行尾添加空格而不更改行上的文本。请不要这么快就将问题称为重复问题。影响人的声誉和积分!

答案1

如果你有GNU sed, 尝试:

sed '/^EQU/ {n; s/$/      /}' SUDIP1>SUDIP2

或者POSIXly:

sed '/^EQU/ {
n
s/$/      /
}' SUDIP1>SUDIP2

相关内容