タグ

awkに関するaz1zaのブックマーク (3)

  • 統計屋のためのAWK入門 - あんちべ!

    はじめに 稿はAWKという言語を用いて、 ごく簡単にデータ分析用の前処理*1をするための解説記事です。 AWKは短いコマンドを記述するだけで多様なデータ処理を可能にします。 特にデータの抽出に関して恐るべき簡易さを提供します。 具体的には、input.txtというファイルの中から "fail"という文字列を含む行を抽出したければ次のように書くだけです。 awk /fail/ input.txt つまり、スラッシュ記号で文字列を指定するだけで その文字列を含む行を抽出できるのです。 大変簡単ですね! また、awkはLinuxMacには標準で入っており、 Windowsでもawk.exeを一つ用意するだけなので、 面倒なインストール作業や環境構築は不要で誰でも即座に使えるため、 自分で書いた処理を他人に渡したり*2各サーバに仕込むなども簡単に出来ます。 複雑な処理をする場合はPython

    統計屋のためのAWK入門 - あんちべ!
  • シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる

    編注1:「シェル芸」とは、UNIXシェル(主にbash)のワンライナーを駆使して文字列加工を自由自在に操ることです。また、そのような能力をもつ人をシェル芸人と呼びます。 「行」=「レコード」 デフォルトでAWKは「行」を「レコード」というものとして扱います。正しくは組込変数RS (Record Separater) で区切られたものをレコードと呼びますが、デフォルトでは、この組込変数RSは改行になるため、行がレコードそのものになります。また、このレコード単位の分割は、アクションでテキストファイルを読み込むと必ず行われるものとなっているため、ユーザーが特別に分割処理をしなくてもレコード単位で扱ってくれる、とても便利な仕組みです。 特殊なものとして、段落単位で読み込むために組込変数RSに空文字列を代入するものや、GNU AWK編注2ではファイル全体をひとつのレコードとして読み込む手法、組込変数

    シェルコマンドを使った処理の効率化は AWKの行(レコード)操作がカギをにぎる
  • プログラム言語 awk Linux/Unix利用者向け一行コマンド

    1行プログラミング awk でデータの単純なフォーマット変換することを目的としています。 まず、次のようなデータ(/tmp/a とします)に対して、処理を行うことを考えます。 1 2 3 4 -5 6 7 8 0 9 10 113 入力行の総数を印字する 入力行の総数を出力します(他の方法 cat /tmp/a | wc)。 cat /tmp/a | awk 'END {print NR }' 実行結果 3 N行目の入力行を印字する 3行目の入力行を出力します(他の方法 cat /tmp/a | head -3 | tail -1)。 cat /tmp/a | awk 'NR==3' 実行結果 9 10 113 N個より多い欄を持つすべての入力行を印字する 1 行に3 個以上のデータが記述されている行をすべて出力する。 % cat /tmp/a | awk 'NF > 3 {print}'

    プログラム言語 awk Linux/Unix利用者向け一行コマンド
  • 1