テキストファイルから特定の文字列が出るたびに行を挿入しようとしています。 ansibleモジュールを試しましたが、lineinfile
ファイル内の一致する文字列の最後または最初のインスタンスの後にのみ行を挿入します。シェルスクリプトやAnsible Playbookを使ってこれを達成する方法を知っている人はいますか?私はLinux OSを使用しているので、この問題を解決するためにUNIXコマンドが役に立ちます。
次のように、次mba
から始まる各行の後に挿入しようとしていますfoo
。
元のtxtファイルの内容:
foo
ab
zz
foo='dummy'
cd
zz
foo='dats'
lm
xx
希望の出力:
foo
mba
ab
zz
foo='dummy'
mba
cd
zz
foo='dats'
mba
lm
xx
ベストアンサー1
Aベースのソリューションはawk
次のとおりです。
awk '{print} /^foo/{print "mba"}' input.txt
デフォルトでは、現在の行を印刷しますが、開始すると、処理が次の行に続く前に追加の行もfoo
印刷されます。mba