我需要插入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

相關內容