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