使用Unix操作系統(tǒng)需要好習(xí)慣
當(dāng)我們學(xué)習(xí)使用Unix操作系統(tǒng)時(shí),我們就應(yīng)該學(xué)習(xí)使用命令行,這對(duì)我們養(yǎng)成良好的習(xí)慣很有幫助。您的不良習(xí)慣甚至?xí)?dǎo)致出現(xiàn)混亂。糾正此類缺點(diǎn)的最佳方法之一,就是有意識(shí)地采用抵制這些壞習(xí)慣的好習(xí)慣。我們?cè)谖恼轮刑岢隽藥讉€(gè)值得采用的 Unix操作系統(tǒng)命令行習(xí)慣。
Unix操作系統(tǒng)使用 awk 處理數(shù)據(jù)
awk 命令似乎始終處在 Perl 的陰影下,但它對(duì)于簡(jiǎn)單、基于命令行的數(shù)據(jù)處理來(lái)說(shuō)是一個(gè)快速、實(shí)用的工具。清單 15 顯示了如何開始使用 awk 命令。
若要獲取文件中每行文本的長(zhǎng)度,請(qǐng)使用 length() 函數(shù)。若要查看字符串 ing 是否出現(xiàn)在文件文本中,請(qǐng)使用 index() 函數(shù),該函數(shù)返回 ing 首次出現(xiàn)的位置,這樣您就可以使用它來(lái)進(jìn)行進(jìn)一步的字符串處理。若要 tokenize(也就是說(shuō),將一行拆分為單詞長(zhǎng)度的片段)某個(gè)字符串,請(qǐng)使用 split() 函數(shù)。
Unix操作系統(tǒng)基本 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
打印文本文件中的指定字段是一項(xiàng)簡(jiǎn)單的 awk 任務(wù)。在清單 16 中,sales 文件包含每個(gè)銷售人員的姓名,后跟每月銷售數(shù)字。您可以使用 awk 命令來(lái)快速獲得每個(gè)月的銷售總額。缺省情況下,awk 將每個(gè)以逗號(hào)分隔的值視為不同的字段。您使用 $n 操作符來(lái)訪問(wèn)每個(gè)字段。
Unix操作系統(tǒng)使用 awk 對(duì)數(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í)Unix操作系統(tǒng)awk 命令,請(qǐng)從命令 man awk 開始。
使用Unix操作系統(tǒng)以上的方法,成為命令行高手需要進(jìn)行一些實(shí)踐。按照相同的方式處理問(wèn)題很簡(jiǎn)單,因?yàn)槟呀?jīng)習(xí)慣了。在漫漫學(xué)習(xí)Unix操作系統(tǒng)中,讓我們慢慢成長(zhǎng)吧!
【編輯推薦】
- 管理Unix操作系統(tǒng)交換區(qū)
- 講述Unix操作系統(tǒng)環(huán)境
- 防止入侵Unix操作系統(tǒng)決策
- 無(wú)Unix操作系統(tǒng)安全之憂
- 快清理你的Unix操作系統(tǒng)吧