awk で特定行の中の特定パターンを置き換える処理
たとえば Makefile にある LIBS 行の中で,特定のライブラリ名だけ置き換え変える.
それ以外の行はそのまま出力する.
#!/usr/bin/awk -f $0~/LIBS/ { str = $0 sub(/-lQt3Support/,"-lQt3SupportE",str) sub(/-lQtXml/,"-lQtXmlE",str) sub(/-lQtGui/,"-lQtGuiE",str) sub(/-lQtNetwork/,"-lQtNetworkE",str) sub(/-lQtCore/,"-lQtCoreE",str) print str } $0!~/LIBS/ { print $0 }
これを foo.awk とか適当なファイル名を付けて保存して,実行許可属性を付けると次のように実行できる.
./foo.awk input.txt > output.txt