目次 に戻る

2004 awk intro

GNU Awk 3.0.6 + multi-byte extension 1.15

awk -f awkscr file

前準備

前準備 として ファイルを作成 、内容は以前作成したもの

Pmt> cat test 
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 ,MA 96662,023-4795
Alice Dord,Nasge Cat, Inc.  ,22 East Broadway Richmond, VA 09505,087-6479
Orville Hpomas,Nojia Corp ,11345 Oak Bridge Road, Tulsa, OK 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 を 操作するために その 内容を 記載した スクリ プト ”awkscr”を 作成する今回 確認の為 2個 作成した

04_awkscr

Pmt> cat 04_awkscr 
# phonelist.awk -- print name and phone number..
# input file -- name,company,street,city,state and zip,phone
BEGIN { FS = ", *" }            # comma-delimited fields
        {print $1 "," $6        }
END {   print ""
        print NR, "records processed." }

05_awkscr

Pmt> cat 05_awkscr 
# phonelist.awk -- print name and phone number..
# input file -- name,company,street,city,state and zip,phone
BEGIN { FS = "," }              # comma-delimited fields
        {print $1 "," $6        }
END {   print ""
        print NR, "records processed." }

相違

Pmt> diff -s 04_awkscr 05_awkscr
3c3
< BEGIN { FS = ", *" }          # comma-delimited fields
---
> BEGIN { FS = "," }            # comma-delimited fields

FS フィールドセパレーター は

{ FS = ", *" }

で 良いと 考えられるが 目が悪いのか

{ FS = ", *" }

の様に 見える したがって 両方にて 試してみる

awk -f 04_awkscr test

Pmt> awk -f 04_awkscr test 
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

10 records processed.

awk -f 05_awkscr test

Pmt> awk -f 05_awkscr test 
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

10 records processed.

同じ様にみえる

結果の確認

Pmt> awk -f 04_awkscr test >p04
Pmt> awk -f 05_awkscr test >p05
Pmt> diff -s p04 p05 
Files p04 and p05 are identical
Pmt> rm p0*

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

Pmt> awk -f awkscr test
 awk  -f awkscr  test

awkscr を 使用するための -f は 小文字の ”f ”である 事に 留意しておく事 大文字では おへん。大文字 フィールドセパレーターとして 使用します 意味が異なります。

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


目次 に戻る

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