目次 に戻る

2005 awk intro

GNU Awk 3.0.6 + multi-byte extension 1.15

複行レコード

前準備 として ファイルを作成 、内容は以前作成したものに 一部変更を 加 えたもの

Pmt> cat 42_list 
Stephan David
UGHI Corp. 
325 5th Ave.
Brliinton
MA 0587964
558-8701

Richard Givson
Etr Inc.
985 Mountain St.
Basement
MA 0879579
416-9761

John Zaggett
Durban Company Inc.
341 King Road Plymouth 
Buryuzell
MA 96662
023-4795

Alice Dord
Nasge Cat Paper Inc.  
22 East Broadway Richmond
Burgenbam
VA 09505
087-6479

Orville Hpomas
Nojia Corp 
11345 Oak Bridge Road
Tulsa
DK 34090
036-1257

Teddy Calcas
MAcyst Inc. 
402 Lans Road
Beaver Falls
PA 58702
078-9416

Eric Aduzeds
HGE Inc.
20 Post Road
Sudbury
MA 79825
035-7169

Hubert Slkmu
Alhcoa Inc.
328A Brook Road
Roanoke
VA 58796
081-4697

Amy Welfd
Jazz Sifood Inc.
334 Bayshore Pkwy
Mountain View
CA 21789
071-2845

Sal Karpenter
Rasar Inc.
73 6th Street
Boston 
MA 87632
073-1876

次に awk にて 取り扱うための その 内容を 記載した スクリ プト ”012_awkscr”を 作成する

012_awkscr

Pmt> cat 012_awkscr 
#block.awk - print first and last fields.
# $1 = name ; $NF = phone number

BEGIN { FS = "\n" ; RS = "" }
{ print $1 , $NF }

試行

Pmt> awk -f 012_awkscr 42_list 
Stephan David 558-8701
Richard Givson 416-9761
John Zaggett 023-4795
Alice Dord 087-6479
Orville Hpomas 036-1257
Teddy Calcas 078-9416
Eric Aduzeds 035-7169
Hubert Slkmu 081-4697
Amy Welfd 071-2845
Sal Karpenter 073-1876

備考

フィルード セパレーター を ”\n”改行 とし
レコードセパレーター を を 空行 これを ”""”とした わかり難い 表現です が コロンを 2個 並べた 形で 表現しています ”BEGIN ”部分を 再掲すると

BEGIN { FS = "\n" ; RS = "" }

FSはフィルード セパレーター で \n

RSはレコードセパレーター で なーんにも無いよ

こういう感じです、この使いかた

にゃんたろう 拝!
GNU Awk 3.0.6 + multi-byte extension 1.15
2007年 1月 9日 (火) 23:47:26 JST 作成


目次 に戻る

Copyright © 2004.-2007. nyantarou All Rights Reserved.