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