CSV 形式の住所録データがあるとする. このデータを利用して宛名用シールを作る例を考えてみる.
次のように, よみかた, 苗字, 名前, 郵便番号, 電話番号, 住所, 勤務会社の順番でデータが並んでいる.
addr.txt
ヤマダ タロウ, 山田, 太郎, 220-0032, 09056210001, 神奈川県横浜市西区老松1-1-1, 三菱 UFJ
ヤマダ ジロウ, 山田, 次郎, 230-0033, 09056210002, 神奈川県横浜市東区日暮里2-2-2, 本田技術研
ヤマダ サンロウ, 山田, 三郎, 240-0034, 09056210003, 神奈川県横浜市北区都取り3-3-3, 東京大学
チョウ ヒ, 趙, 飛, 901-2210, 08055217890, 沖縄県宜野湾市志真志4-5-6, 琉球大学
ナカダ メグミ, 中田, 恵, 333-2213, 0102213789, 東京都葛飾区松和里6-8-2, 日本テレビ
宛名シールは:
郵便番号
住所
氏名
が記されているものにする.
フィールドセパレータをカンマに変えてやる.
FS という変数には入力行 (レコード) をフィールドに区切るときの目印である, フィールドセパレータが入っている.
card.awk
#!/usr/local/bin/gawk -f
BEGIN{
FS = ", "
}
{
print "郵便番号: " $4
print "住所: " $6
print "名前: " $2 " " $3
}
card.awk の実行結果は:
[cactus:~/code_awk/tuts]% ./card.awk addr.txt
郵便番号: 220-0032
住所: 神奈川県横浜市西区老松1-1-1
名前: 山田 太郎
郵便番号: 230-0033
住所: 神奈川県横浜市東区日暮里2-2-2
名前: 山田 次郎
郵便番号: 240-0034
住所: 神奈川県横浜市北区都取り3-3-3
名前: 山田 三郎
郵便番号: 901-2210
住所: 沖縄県宜野湾市志真志4-5-6
名前: 趙 飛
郵便番号: 333-2213
住所: 東京都葛飾区松和里6-8-2
名前: 中田 恵
card2.awk
#!/usr/local/bin/gawk -f
BEGIN{
FS = ", "
}
{
print "〒: " $4
print "住所: " $6
print "名前: " $2 " " $3 "様"
print ""
}
card2.awk の実行結果は:
〒: 220-0032
住所: 神奈川県横浜市西区老松1-1-1
名前: 山田 太郎様
〒: 230-0033
住所: 神奈川県横浜市東区日暮里2-2-2
名前: 山田 次郎様
〒: 240-0034
住所: 神奈川県横浜市北区都取り3-3-3
名前: 山田 三郎様
〒: 901-2210
住所: 沖縄県宜野湾市志真志4-5-6
名前: 趙 飛様
〒: 333-2213
住所: 東京都葛飾区松和里6-8-2
名前: 中田 恵様
以下のようなやりかたを実行しても大丈夫:
[cactus:~/code_awk/tuts]% gawk -f card2.awk addr.txt