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

関連情報