データの加工に用いるフィルタコマンド


2008.5.30

sed コマンド 大量のテキストデータを一括編集する。
 s コマンド…文字列の置き換え
 y コマンド…文字の置き換え

 sed 's/AYUMI/AYA/' member2    member2 ファイルの「AYUMI」を「AYA」に置換
 sed 's/AYA__/AYUMI/' member2    member2 ファイルの「AYA」 を「AYUMI」に置換 
' 'で囲み、スラッシュではさむ

 sed 'y/mw/MW/' member2    member2ファイルのmをMに、wをWに置換

 スクリプトに動作を記述して用いる。
 指定されたパターンを検索し、一致したら処理を行うので特定の構造を持たないファイルを処理する
  のに向いている。
 例:プログラムファイルの一部を一括して書き換える
  受信したメールから、必要な本文のみを抜き出して保存。
  指定ファイルを特定の条件に応じて書き換える。

awk コマンド パターン処理。データ加工時利用。パターンは正規表示可能。
 awkコマンドの使われ方…引数に処理コマンド(' 'で囲む)を用いる。
 引数 print を用いてみる↓(printは指定フィールドを標準出力に出力するコマンド)
awk '{print $1,$3,$5}' member2    print:コマンド。 $1,$3,$5:抜き出すフィールド

 printfコマンドを用いて書式指定。
  awk '{printf("%s % -9s %s\n"$1,$3,$5)}' member2
 ( )内は printf の引数
 " "内は書式指定子:%s  :1番目のフィールドを文字列で出力
            % -9s :$3のフィールドに%sにフィールド幅9を−で左詰めを指定。
            %s\n :5番目のフィールド($5)の後に改行を出力
            (\は半角)

awkの応用:スクリプトに動作を記述して用いる。
 特定の文字パターンを検索し、一致したら処理を行う
 フィールドの扱い、出力の書式化が可能。
  特定の構造を持ったファイルを処理するのに向く。
 例:ログファイルから特定の情報のみ抽出
  異常を示す記録のみ抽出
  データベースファイルを検索して、書式化された表を作り出す。