Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > 其他编程语言 > AWK How to Compute and Print Certain Fields
【标  题】:AWK How to Compute and Print Certain Fields
【关键字】:AWK,How,to,Compute,and,Print,Certain,Fields
【来  源】:http://blog.chinaunix.net/article.php?articleId=35035&blogId=8048

AWK How to Compute and Print Certain Fields

Your Ad Here 列印檔案中指定的欄位資料並加以計算

列印檔案中指定的欄位資料並加以計算

AWK 處理資料時, 它會自動從資料檔中一次讀取一筆記錄, 並會 將該資料切分成一個個的欄位; 程式中可使用 , ,... 直接取得 各個欄位的內容. 這個特色讓使用者易於用 AWK 撰寫 reformatter 來改變資料格式.
  • [ 範例 :] 以檔案 emp.dat 為例, 計算每人應發工資並列印報表.
  • [ 分析 :] AWK 會自行一次讀入一列資料, 故程式中僅需告訴 AWK 如何處理所讀入的資料列.
執行如下命令 : ( $ 表UNIX命令列上的提示符號 ) awk '{ print , * }' emp.dat 執行結果如下 : 螢幕出現 : Jenny 21000 Dan 23650 Max 27170 John 27500 Linda 19950 說 明 :
  1. UNIX命令列上, 執行AWK的語法為: awk 'AWK程式' 欲處理的資料檔檔名. 本範例中的 程式部分 為 {print , * }. 把程式置於命令列時, 程式之前後須以 ' 括住.
  2. emp.dat 為指定給該程式處理的資料檔檔名.
  3. 本程式中使用 : Pattern { Actions } 語法.
    PatternActions
    print , *
    Pattern 部分被省略, 表無任何限制條件. 故AWK讀入每筆資料列 後都將無條件執行這個 Actions.
  4. print為AWK所提供的輸出指令, 會將資料輸出到stdout(螢幕). print 的參數間彼此以 ``{ ,}'' 隔開, 印出資料時彼此間會以空白 隔開. (參考 附錄 D 內建變數OFS)
  5. 將上述的 程式部分 儲存於檔案 pay1.awk 中. 執行命令時再指定AWK程式檔 之檔名. 這是執行AWK的另一種方式, 特別適用於程 式較大的情況, 其語法如下: $awk -f AWK程式檔名 資料檔檔名 故執行下列兩命令,將產生同樣的結果. $awk -f pay1.awk emp.dat $awk ' { print , * } ' emp.dat 讀者可使用``-f''參數,讓AWK主程式使用其它僅含 AWK函數 的 檔案中的函數 其語法如下: awk -f AWK主程式檔名 -f AWK函數檔名 資料檔檔名 (有關 AWK 中函數之宣告與使用於 7.4 中說明)
  6. AWK中也提供與 C 語言中類似用法的 printf() 函數. 使用 該函數可進一步控制資料的輸出格式. 編輯另一個AWK程式如下, 並取名為 pay2.awk { printf("\%6s Work hours: %3d Pay: %5d\", ,$3, * ) } 執行下列命令 $awk -f pay2.awk emp.dat 執行結果螢幕出現: Jenny Work hours: 100 Pay: 21000 Dan Work hours: 110 Pay: 23650 Max Work hours: 130 Pay: 27170 John Work hours: 125 Pay: 27500 Linda Work hours: 95 Pay: 19950

AWK 選印合乎指定條件的記錄:【上一篇】
Why AWK:【下一篇】
【相关文章】
  • AWK 選印合乎指定條件的記錄
  • AWK 中陣列的特色
  • AWK 程式中使用 Shell 命令
  • AWK 中如何利用系統資源
  • 執行 AWK 程式的幾種方式
  • getopts使用样例
  • A Week in the Life Of a System Administrator
  • 揭开sed和awk的秘密
  • grep/awk/sed的多条件查询
  • gawk手册
  • 【随机文章】
  • 在SQL Server中如何进行错误捕捉
  • 处巧若拙,处明若晦,处动若静--面试成功后,好友给我的建议
  • Eclipse开发WEB的新利器--Exadel Studio
  • 用高速缓存加速您的 Web 服务[转载-好文章大家共享]
  • mysql的最大连接数默认是100
  • 黑客伪装自己避开检测常用手段的简要介绍
  • LumaQQ启动加速
  • Javascript实例教程(20) 使用HoTMetal(3)
  • OGRE分析之文件系统(三)
  • 游戏开发新手入门指南
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.