日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

UNIX 技巧: UNIX 高手的另外 10 個習(xí)慣( 四 )


if [ $(whoami) = "root" ]
then
echo "You cannot run this script as root."
exit 1
fi
使用 awk 處理數(shù)據(jù)
awk 命令似乎始終處在 Perl 的陰影下,但它對于簡單、基于命令行的數(shù)據(jù)處理來說是一個快速、實用的工具 。清單 15 顯示了如何開始使用 awk 命令 。若要獲取文件中每行文本的長度,請使用 length() 函數(shù) 。若要查看字符串 ing 是否出現(xiàn)在文件文本中,請使用 index() 函數(shù),該函數(shù)返回 ing 首次出現(xiàn)的位置,這樣您就可以使用它來進(jìn)行進(jìn)一步的字符串處理 。若要 tokenize(也就是說,將一行拆分為單詞長度的片段)某個字符串,請使用 split() 函數(shù) 。
清單 15. 基本 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]; i;} }' text
testing
the
awk
command
打印文本文件中的指定字段是一項簡單的 awk 任務(wù) 。在清單 16 中,sales 文件包含每個銷售人員的姓名,后跟每月銷售數(shù)字 。您可以使用 awk 命令來快速獲得每個月的銷售總額 。缺省情況下,awk 將每個以逗號分隔的值視為不同的字段 。您使用 $n 操作符來訪問每個字段 。
清單 16. 使用 awk 對數(shù)據(jù)進(jìn)行匯總
$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 命令可以很復(fù)雜并應(yīng)用于廣泛的情景中 。若要更完整地學(xué)習(xí) awk 命令,請從命令 man awk 開始,并參閱參考資料部分提供的資源 。
結(jié)束語
【UNIX 技巧: UNIX 高手的另外 10 個習(xí)慣】成為命令行高手需要進(jìn)行一些實踐 。按照相同的方式處理問題很簡單,因為您已經(jīng)習(xí)慣了 。擴(kuò)展您的命令行資源可以顯著提高您的工作效率,并促使您朝著 UNIX 命令行高手的方向前進(jìn)!

推薦閱讀