RECOMMEND

ハッカーと画家
ハッカーと画家
プログラマ必読。→感想


C言語ポインタ完全制覇
C言語ポインタ完全制覇
C言語 対ポインタ最強兵器。
感想

COUNTER

MONTHLY

CATEGORIES

RECENT ENTRIES

RECENT COMMENTS

RECENT TRACKBACKS

twitter

Twitterボタン

APPENDIX

sugarball

こまごまと、プログラミング関係のtipsを。

[スポンサー広告]スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[awk]awkで配列要素が存在するか確認する 

awkの配列は連想配列である。例えば、
array[1]=10
array["aaa"]=20
のように、配列要素を文字列で指定できる。

ここで、「あれ?配列要素 "abc" ってあったっけ?」のように特定の配列要素が存在するかどうか確認したい場合には、
if("abc" in array)
のように、in 構文を使えば良い。
スポンサーサイト

[awk]awkの基本 

awkの基本的な使い方を紹介します。

awkに簡単なデータファイルを処理させるという事をやってみます。まずは、データファイルを用意します。
data.txt
line1_f1 line1_f2 line1_f3 line1_f4
line2_f1 line2_f2 line2_f3 line2_f4

次に、awkのスクリプトファイルを用意します。「スクリプトファイル」と呼びましたが、要はawkのプログラムが記述されたファイルのことです。
test1.awk
{
print $2;
}
このプログラムの意味は、一行ずつ、2フィールド目の要素を出力するというものです。まぁ、後でプログラムを動かすので、そちらで結果を見てください。

これで、スクリプトファイルとデータファイルが用意できました。次に、データファイルをスクリプトファイルで処理します。
$ awk -f test1.awk data.txt
line1_f2
line2_f2
ここで、オプション「-f」は、スクリプトファイルを指定するという意味です。

となります。ちなみに、標準入力から(パイプ経由ってこと)データを入力することもできます。
$ cat data.txt | awk -f test1.awk
line1_f2
line2_f2
同じ結果になりました。

また、コマンドライン中にスクリプトを記述することもできます。
$ cat data.txt | awk '{print $2;}'
line1_f2
line2_f2

$ awk '{print $2;}' data.txt
line1_f2
line2_f2
どちらも、同じ結果になります。

また、キーボードからの入力も可能です。
$ awk -f test1.awk
a b c d
b
ここで、2行目の「a b c d」はキーボードからの入力で、3行目の「b」が結果として返されます。続けて入力を行うことも可能で、終了する場合は[Ctrl-C]で終了します。


[awk]文字列の頭からn文字抽出する 

awkで文字列の頭からn文字抽出するには、substr関数を使う。
$ echo "1234567890" | awk '{print substr($0,1,3);}'
123


「123」が出力される。
ここで、substrの引数
・「$0」は入力文字列
・「1」は文字列の何文字目から抽出を始めるか
・「3」は何文字抽出するか
である。

当然、substrを使って、「n文字目からm文字抽出する」ということも可能である。
$ echo "This is your pen." | awk '{print substr($0,9,4);}'
your

«  | HOME |  »

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。