メモ書き

自分が後で見直すためにつけている作業のメモ書きです.それ以上の意味はありません

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