複数行からなるデータを一つのレコードとしてまとめる
(要素数が可変の場合)
住所:東京都世田谷区
性別:男
年齢:35
ペット:なし
住所:東京都渋谷区
性別:女
年齢:29
ペット:あり
種類:犬
住所:東京都目黒区
性別:男
年齢:42
ペット:あり
種類:カメ
:
:
:
のように、必須回答項目と任意項目の両方があるデータ(
この場合、ペットを飼っている人のみペットの種類を答える)
が集められることもあります。
このようなデータを
東京都世田谷区,男,35,なし
東京都渋谷区,女,29,あり,犬
東京都目黒区,男,42あり,カメ
:
のように連結し、awkや表計算ソフトで処理しやすいようにする
のがこのプログラムの目的です。
BEGIN {
FS = ":";
JUUSHO = "";
SEIBETSU = "";
NENREI = 0;
PET = "";
SHURUI = "";
}
{
if ( $1 == "住所" ) {
JUUSHO = $2;
}
if ( $1 == "性別" ) {
SEIBETSU = $2;
}
if ( $1 == "年齢" ) {
NENREI = $2;
}
if ( $1 == "ペット" ) {
PET = $2;
}
if ( $1 == "種類" ) {
SHURUI = $2;
}
if ( $0 == "" ) {
if ( PET == "なし" ) {
printf( "%s,%s,%s,%s\n", JUUSHO, SEIBETSU, NENREI,PET );
}
else {
printf( "%s,%s,%s,%s,%s\n", JUUSHO, SEIBETSU, NENREI,PET, SHURUI );
}
}
}
というファイルが dat6.txt として存在するとします。住所:東京都世田谷区 性別:男 年齢:35 ペット:なし 住所:東京都渋谷区 性別:女 年齢:29 ペット:あり 種類:犬 住所:東京都目黒区 性別:男 年齢:42 ペット:あり 種類:カメ
とタイプします。c:\awk> gawk -f ren2.awk dat6.txt
と出力されるはずです。東京都世田谷区,男,35,なし 東京都渋谷区,女,29,あり,犬 東京都目黒区,男,42,あり,カメ
Copyright © 2004 TKEN