python3でファイル内の複数の文字列を置き換える

python3でファイル内の複数の文字列を置き換える

名前とともに変更する必要memberUidがある以下のいくつかの項目を含むテストファイルがあります。nisNetgroupTriple

$ cat testfile2
memberUid: tony
memberUid: jacob
memberUid: zenny
memberUid: helori
memberUid: honies
memberUid: hunter

しかし、memberUidunix likeを使用して変更することができ、likeを使用して再変更することはできますが、どちらもプロセスをよりエレガントに実行できますが、まだ理解していません。nisNetgroupTriplesed%s/memberUid/nisNetgroupTriple/gawkawk '{print $1, "(-,"$2",)"}' testfile2

希望の出力:

nisNetgroupTriple: (-,tony,)
nisNetgroupTriple: (-,jacob,)

ベストアンサー1

この試み:

sed -r 's/^memberUid: (.*)/nisNetgroupTriple: (-,\1,)/' testfile2 
nisNetgroupTriple: (-,tony,)
nisNetgroupTriple: (-,jacob,)
nisNetgroupTriple: (-,zenny,)
nisNetgroupTriple: (-,helori,)
nisNetgroupTriple: (-,honies,)
nisNetgroupTriple: (-,hunter,)

sedを検索、置換、およびキャプチャグループで使用します(.*)。代替文字列は目的の書式を作成し、\1角かっこ内にキャプチャされた内容を埋めます。

おすすめ記事