これは素晴らしい答えです。 https://stackoverflow.com/a/6739327/15603477 しかし、まだ少し混乱しています。
a
変数がない場合は、次のようにawk '/^nameserver/ { printf("nameserver 127.0.0.1\n")} {print}' file2
なります。
# Generated by NetworkManager
domain dhcp.example.com
search dhcp.example.com
nameserver 127.0.0.1
nameserver 10.0.0.1
nameserver 127.0.0.1
nameserver 10.0.0.2
nameserver 127.0.0.1
nameserver 10.0.0.3
複数の組み合わせを試してから使用する必要があることがわかりました。
awk '/^nameserver/ && !a { printf("nameserver 127.0.0.1\n"); a=1 } {print}' file2
しかし、繰り返しを停止する機能については!a
まだ混乱しています。a=1
printf("nameserver 127.0.0.1\n")
ベストアンサー1
変数名を明確に指定してくださいalready_inserted
。a
これにより、次のように読み込まれます。
if my_pattern matches and not already_inserted { insert "some text"; already_inserted=true; }
awk
このコマンドは各行に対して実行されます。