- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- シェルスクリプト/awk へ行く。
- 1 (2012-01-26 (木) 17:44:07)
- 2 (2012-01-26 (木) 17:50:39)
- 3 (2013-02-07 (木) 06:17:14)
- 4 (2013-02-08 (金) 21:25:58)
awk
文字列中のシングルクォートの表示
awk "BEGIN { print \"That's it\" }" => That's it
awk 'BEGIN { print "That\'s it" }' => 間違い
シェルのエスケープの性格上、ワンライナーでシングルクォートを表示する場合は上の例のようにする。
セパレータを指定して取り出す
echo 'a,b,c' | awk -F , '{print $2}' => b
もしくは
echo 'a,b,c' | awk 'BEGIN{FS=","} {print $2}' => b
ENDブロック
ps -e -o vsz,cmd | grep httpd | awk '{sum+=$1} END {print sum}' => 1871064
全行処理後に合計メモリを表示。
print 関数
echo 'a,b,c' | awk 'BEGIN{FS=","} { print "DEBUG: " $1 " & " $2 }' => DEBUG: a & b
文字列連結はスペース区切りで文字列や変数を列挙する。
printf 関数
echo 'a,b,1' | awk 'BEGIN{FS=","} { printf( "DEBUG: %s & %d\n", $1, $3 ) }' => DEBUG: a & 1
printf()は改行が付かないので、自分で改行を付ける。