awkコマンドにprintを指定して、文字列を抽出することができます。
awkとは
sed や grep の高機能なツールとして開発されていて、簡単な行ベースのテキストファイルを処理することができるコマンドです。
行全体を抽出
以下コマンドでaccess.logの末尾3行を出力します。
printに$0
を指定することで、以下のように行すべてが出力されます。
区切り(スペース)の4、5項目を抽出
以下コマンドで、aaccess.logの末尾3行のタイムスタンプを出力します。
printに$4,$5
のようにカンマ区切りで指定することで、スペース区切りの4,5項目が出力されます。
カンマ区切りの項目を抽出
以下ファイルを例に確認します。
以下コマンドで、CSVファイルの2列目を取得します。
-Fに'[,]'
を指定することで、区切り文字をカンマ「,」
へ変えることができます。
以下のように、2列目が出力されることを確認しました。
まとめ
- printに以下組み込み変数を指定して、値を抽出することができる。
組み込み変数 | 説明 |
---|
$0 | レコード |
$n | レコードのn番目のフィールド |
- -Fオプションを指定して、区切り文字を変更できる。(デフォルトはスペース)
余談
- awkは
オーク
と読みます。エー・ダブリュー・ケーではありません。
awk
は、開発者の Alfred Vaino A
ho(アルフレッド・エイホ)、Peter Jay W
einberger(ピーター・ワインバーガー)、Brian Wilson K
ernighan(ブライアン・カーニハン)の3人の頭文字を取って名付けられました。
以上で本記事の解説を終わります。
よいITライフを!
スポンサーリンク