複数行からなるデータを一つのレコードとしてまとめる
(要素数が固定の場合)
住所:東京都世田谷区
性別:男
年齢:35
住所:東京都渋谷区
性別:女
年齢:29
住所:東京都目黒区
性別:男
年齢:42
:
:
:
のようなデータとして集められてしまうことも
よくあります。
このようなデータを
東京都世田谷区,男,35
東京都渋谷区,女,29
東京都目黒区,男,42
:
のように連結し、awkや表計算ソフトで処理しやすいようにする
のがこのプログラムの目的です。
BEGIN {
FS = ":";
JUUSHO = "";
SEIBETU = "";
NENREI = 0;
}
{
if ( ( NR % 3 ) == 1 ) {
JUUSHO = $2;
}
if ( ( NR % 3 ) == 2 ) {
SEIBETSU = $2;
}
if ( ( NR % 3 ) == 0 ) {
NENREI = $2;
printf( "%s,%s,%d\n", JUUSHO, SEIBETSU, NENREI );
}
}
というファイルが dat5.txt として存在するとします。住所:東京都世田谷区 性別:男 年齢:35 住所:東京都渋谷区 性別:女 年齢:29 住所:東京都目黒区 性別:男 年齢:42
とタイプします。c:\awk> gawk -f ren1.awk dat5.txt
と出力されるはずです。東京都世田谷区,男,35 東京都渋谷区,女,29 東京都目黒区,男,42
このようなレコード連結の問題は
いろいろなバリエーションが考えられます。
ここではもっとも単純な場合を想定しました。
より実践的なケースを
こちら
で解説しています。
Copyright © 2004 TKEN