ansibleまたはunixコマンドを使用して、ファイル内の特定のパターンが一致するたびに行を挿入します。

ansibleまたはunixコマンドを使用して、ファイル内の特定のパターンが一致するたびに行を挿入します。

テキストファイルから特定の文字列が出るたびに行を挿入しようとしています。 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

おすすめ記事