حالا میخواهیم چند تا برنامه بنویسیم که پردازشهایی را روی این فایل انجام بدهند. برای اوّلین مثال برنامهی زیر را در فایل exam1.awk مینویسیم.
/gold/ { printf("%s\n", $0); }
این برنامه به مفسّر میگوید اوّل در فایل دنبال عبارت gold بگرد بعد در هر خطی که آن را پیدا کردی دستورات داخل آکولاد را برای آن خط اجرا کن. در این مثال مفسّر در همان خط اول gold را پیدا میکند بعد تمام کلمات آن خط را که با فاصله از هم جدا شدهاند در متغیّرهای $1 و $2 و . میریزد و کلّ خط را هم در متغیّر $0 میریزد. در این مثال در خطّ اوّل $1=”gold”، $2=”1”، $3=”1986” و حالا برای خطهایی که حاوی gold هستند دستور printf اجرا میشود. عملکرد دستور printf و همچنین طرز استفاده از آن درست شبیه زبان C است که من اینجا تکرارش نمیکنم.
پس نتیجتاً این برنامه هر خطی را که توش gold پیدا کند کلاً چاپ میکند. حالا میرسیم به طرز اجرای این برنامه در لینوکس. اوّل فایلهای coins.txt و exam1.awk را درست کنید و سپس این عبارت را در خطّ فرمان لینوکس تایپ کنید.
awk –f exam1.awk coins.txt
چیزی که به عنوان خروجی چاپ خواهد شد این خواهد بود.
gold 1 1986 USA American Eagle
gold 1 1908 Austria-Hungary Franz Josef 100 Korona
gold 1 1984 Switzerland ingot
gold 1 1979 RSA Krugerrand
gold 0.5 1981 RSA Krugerrand
gold 0.1 1986 PRC Panda
gold 0.25 1986 USA Liberty 5-dollar piece
gold 0.25 1987 USA Constitution 5-dollar piece
gold 1 1988 Canada Maple Leaf
متلب پروگرمر gold ,gold ,برنامه ,1 ,پیدا ,usa ,gold 1 ,dollar piece ,krugerrand gold ,rsa krugerrand ,دستور printf ,rsa منبع
درباره این سایت