![]() |
メールマガジン 経営相談 情報技術 活動実績 経歴等 問合せ リンク | |
awkコマンド | ||
awkコマンドは、パターンマッチングにより処理を行うUNIXコマンドです。もちろん、Linuxにもこのコマンドはあります。sed同様に文字の置換や削除などのテキスト編集ができますが、大きな違いはレコード(エディタで言う行)をフィールドという単位に分けて処理ができることです。 | ||
awkのメリット |
||
awkを使うことのメリットは、
|
||
GNU awkのインストール |
||
sed同様、Windowsでも使えるようなものがありますので、興味のある方はぜひやってみてください。Vector等のソフトウェアダウンロードサービスのサイトから落とすことができます。ダウンロードしたら、解凍して、そうですね、awk.exeをc:\windows\commandあたりのディレクトリに移しておけば、良いと思います。インストールはその程度です。 ちなみにLinuxでは設定しなくても、インストール時にデフォルトのコマンドとして使えるようになっています。 |
||
サンプル1 |
||
こんな感じです。超概略ですが。。。 これはsample.awkというファイルに書いてあるawkプログラムを使って、test.txtを処理し、結果をresult.txtに書き出せという意味です。awk -f sample.awk test.txt > result.txtじゃあ、sample.awkには何を書くのでしょうか。次のサンプルを見ましょう。 |
||
サンプル2(私が実行中のこと) |
||
前回のsedの時に私がしたいことを書いていました。それは、
Who:Mr.Sagawaを Mr.Sagawa|From Office|telnetにしたいというものでした。要は縦に並んでいるものを横にしたいというものです。awkプログラムは次のように書きます。 BEGIN {という感じです。これは1つしかグループがないと想定したプログラムですので、実際にはもう少し複雑です。一部だけ説明すると、/^Who/というところは、行の先頭がWhoだったら、outという変数に2つ目のフィールドの情報を保存しておいてください、という意味です。最後にprintで書き出して終わりです。もっと詳細を知りたい方は文献をお読みいただくか、私まで連絡をどうぞ。 |
||
初めに戻る |