我需要插入 12 个空格。它应该匹配特定字符串,然后转到下一行,其中包含 12 个空格

我需要插入 12 个空格。它应该匹配特定字符串,然后转到下一行,其中包含 12 个空格

我有一个名为 space.txt 的文件。我正在使用 ath2 进行字符串匹配。我需要在 12 个空格后插入一个字符串“newdata”。我尝试了下面的命令,它有效,但手动删除了 12 个空格。如何通过其他方式实现?

sed -e "/ath2/a\            newdata" space.txt

我需要这样的输出

unix@BDC8-LX-CVZ52X2:~/12space$ cat space
ath1
ath2
            newdata
ath3
ath4
ath5

答案1

您可以使用printf来生成空格:

sed -e '/ath2/a\'"$(printf %012s)"'newdata' "space.txt"

答案2

这是你想要的吗:

sed "/ath2/a$(printf '\%12s')newdata" space

相关内容