awkって便利ねー。
2004年7月12日 お仕事今日は思いっきり仕事モードです。
Unixユーザーじゃない人にはつまんない内容です。
ごめんなさい。
"awk"
ファイル編集のための最終兵器って感じですかねー。
今までも監視スクリプトとかで使ってたんだけど、本日はawkをかなりぶん回してました。
(けっこう重いから、リソースがタイトなサーバでぶん回すのは厳禁です。)
っで、こんな感じで書くとスペース区切りでファイルの中の文字列をマトリクスとして読みこんで、必要な情報を一行で書き出してくれます。
awk ’/検索キー/{ 変数1=$1; 変数2=$4; print 変数2,変数1; }’ 読み込みファイル
上記のコマンドの実行時のプロセスは
1."読み込みファイル"の中から一行読み込む
2.読み込んだ行の中に抽出条件"検索キー"があったらスペースをセパレータとしてマトリクスとして認識する
3.マトリクスは$1、$2、$3、$4…、っと指定でき、変数"変数1"に$1の内容を渡し、変数"変数2"に$4の内容を渡す。
4.print命令により、”$4 $1”というフォーマットでそれぞれの内容が標準出力される。
5.次の行を読み込む
以下、EOFまで繰り返し。
もちろん、print命令ではなく、printf命令にてフォーマットを指定しての出力も可能である。
ファイルを作成したい場合には、リダイレクトしてしまえばOK。
(注 上記はHP-UX11i上で行った場合。OSにより多少仕様が異なりSolarisではawkだけではなく、nawkコマンドを使い分ける必要がある。Linuxでも同様。)
明日もぶん回します。
どーせテスト系なんてだれも使ってないからね。(笑
Unixユーザーじゃない人にはつまんない内容です。
ごめんなさい。
"awk"
ファイル編集のための最終兵器って感じですかねー。
今までも監視スクリプトとかで使ってたんだけど、本日はawkをかなりぶん回してました。
(けっこう重いから、リソースがタイトなサーバでぶん回すのは厳禁です。)
っで、こんな感じで書くとスペース区切りでファイルの中の文字列をマトリクスとして読みこんで、必要な情報を一行で書き出してくれます。
awk ’/検索キー/{ 変数1=$1; 変数2=$4; print 変数2,変数1; }’ 読み込みファイル
上記のコマンドの実行時のプロセスは
1."読み込みファイル"の中から一行読み込む
2.読み込んだ行の中に抽出条件"検索キー"があったらスペースをセパレータとしてマトリクスとして認識する
3.マトリクスは$1、$2、$3、$4…、っと指定でき、変数"変数1"に$1の内容を渡し、変数"変数2"に$4の内容を渡す。
4.print命令により、”$4 $1”というフォーマットでそれぞれの内容が標準出力される。
5.次の行を読み込む
以下、EOFまで繰り返し。
もちろん、print命令ではなく、printf命令にてフォーマットを指定しての出力も可能である。
ファイルを作成したい場合には、リダイレクトしてしまえばOK。
(注 上記はHP-UX11i上で行った場合。OSにより多少仕様が異なりSolarisではawkだけではなく、nawkコマンドを使い分ける必要がある。Linuxでも同様。)
明日もぶん回します。
どーせテスト系なんてだれも使ってないからね。(笑
コメント