當我們學習使用Unix操作系統時,我們就應該學習使用命令行,這對我們養成良好的習慣很有幫助。您的不良習慣甚至會導致出現混亂。糾正此類缺點的最佳方法之一,就是有意識地采用抵制這些壞習慣的好習慣。我們在文章中提出了幾個值得采用的 Unix操作系統命令行習慣。
Unix操作系統使用 awk 處理數據
awk 命令似乎始終處在 Perl 的陰影下,但它對於簡單、基於命令行的數據處理來說是一個快速、實用的工具。清單 15 顯示了如何開始使用 awk 命令。
若要獲取文件中每行文本的長度,請使用 length() 函數。若要查看字符串 ing 是否出現在文件文本中,請使用 index() 函數,該函數返回 ing 首次出現的位置,這樣您就可以使用它來進行進一步的字符串處理。若要 tokenize(也就是說,將一行拆分為單詞長度的片段)某個字符串,請使用 split() 函數。
Unix操作系統基本 awk 處理 $ cat text
- testing the awk command
- $ awk '{ i = length($0); print i }' text
- 23
- $ awk '{ i = index($0,”ing”); print i}' text
- 5
- $ awk 'BEGIN { i = 1 } { n = split($0,a," "); while (i <= n) {print a; i++;} }' text
- testing
- the
- awk
- command
打印文本文件中的指定字段是一項簡單的 awk 任務。在清單 16 中,sales 文件包含每個銷售人員的姓名,後跟每月銷售數字。您可以使用 awk 命令來快速獲得每個月的銷售總額。缺省情況下,awk 將每個以逗號分隔的值視為不同的字段。您使用 $n 操作符來訪問每個字段。
Unix操作系統使用 awk 對數據進行匯總 $cat sales
- Gene,12,23,7
- Dawn,10,25,15
- Renee,15,13,18
- David,8,21,17
- $ awk -F, '{print $1,$2+$3+$4}' sales
- Gene 42
- Dawn 50
- Renee 46
- David 46
awk 命令可以很復雜並應用於廣泛的情景中。若要更完整地學習Unix操作系統awk 命令,請從命令 man awk 開始。
使用Unix操作系統以上的方法,成為命令行高手需要進行一些實踐。按照相同的方式處理問題很簡單,因為您已經習慣了。在漫漫學習Unix操作系統中,讓我們慢慢成長吧!