開発者 つぼ

 
お品書き
Amazon
 

awk一行プログラム

 覚えると便利。使わないと忘れるawk。 ついついperlでやってしまうことも、awkで一行で出来る事も多いですよ。

ファイルの合計サイズを求める
 $ls -la | awk ' {x += $5}; END {print x}'
  lsの結果の5番目(バイト数)を順番に足して最後に表示するというプログラム。
  OSによっては、バイト数の表示位置が変わることがあるので注意
  wc -c * | awk '$2~/合計/ {print $1}'でも良さそうだが、2バイト文字が入ると
  どうも上手くいかない。"合計"の部分が、英字表記なら上手くいきます。

ファイルの合計ステップ数を求める
 $wc -l *.sh | awk '{x += $1}; END {print x/2}'
   こんなものが、今時必要になるかは疑問だが、シェル等のステップ数を求めるプログラム。
  Linux系のwcだと、最後に合計行が入るので2で割っている。
   solaris等でwcをしたら、最後に合計はなかったような・・・。(未確認)

入力データ中のn文字以上の行を取り出す
 $awk 'length($0) > n' hoge.dat
   ログの解析の時に、微妙に役に立つことがある。
  $0で行全体が対象になるので、項目指定の時は$nで使用すること。
  多分、他のコマンドと併用することになるでしょう。

ファイルの件数を数える
 $ls | awk ' { x += 1} END { print x }'
   ファイル数を数えます。

特定の文字列を置換する
  $awk '{sub(/-/,","); print $1,$4}' 
"-"を","に置換

区切り文字の変更
  $awk -Fc
cの部分に、任意の区切り文字をセットする


【参考にしたサイト】
The GNU Awk User's Guido
The GAWK Manual - String Functions

   
Copyright © 2005 開発者のつぼ
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送