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