フィールド抽出

データファイルからフィールドを抽出する

同等のawkプログラムへ

プログラム

プログラムは以下のようになります。 以下をタイプして、適当な名前でセーブしてください。ここでは f.pl という名前でセーブしたことにして話を進めます。
while(<>) {
	s/[\r\n]//g;
	@field = split( /,/, $_ );
	printf( "%s\n", $field[1]);
}
exit;

入力データ

入力データは、以下のようなカンマ区切りファイルを想定しています。 以下のようなファイルを作成し、 dat2.txt という 名前でセーブしてあると仮定しています。
1,田中,男
2,佐藤,女
3,鈴木,女

実行結果

OSはWindowsを利用していると 仮定します。 DOS prompt 上で、
c:\perl> perl f.pl dat2.txt
とタイプします。
田中
鈴木
佐藤
と出力されるはずです。

応用

表示フィールドを変更する

今、表示されているのは第2フィールドです。これを第3フィールドを 表示するようするには、 f.plの四行目を
	printf( "%s\n", $field[2]);
とするだけです。perlでは、Cと同じく配列は0から始まるので、 第3フィールドは$field[2]で指定します。

出力形式を変更する

単にフィールドのデータを出力するのではなく、少し加工してから出力したい 場合 もよくあります。このデータの場合、第2フィールドは人の姓ですから、 礼儀として敬称をつけたいかもしれません。そのときには f.plの四行目を
	printf("%sさん\n", $field[1] );
とすれば、
田中さん
鈴木さん
佐藤さん
と出力されます。
メニューに戻る
Tkensaku

TKENSAKU top へ

Copyright © 2004 TKEN