8.10 shell特殊符號cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符號下
擴展
- source exec 區別 http://alsww.blog.51cto.com/2001924/1113112
- Linux特殊符號大全 http://ask.apelearn.com/question/7720
- sort并未按ASCII排序 http://blog.csdn.net/zenghui08/article/details/7938975
shell特殊符號總結
- 表示任意個任意字符,? 表示任意一個字符。這兩個是比較常見的通配符,windows下也常用。
shell腳本中是注釋字符。終端命令提示符#默認表示root用戶,普通用戶是$。
\ 是脫義字符。/是斜杠,我以前會把兩個符號記混。linux中斜杠使用更多一些,比如目錄路徑、終端命令換行等。斜杠是橫杠左端被壓下,我是用“先左后右”“左為尊左常用”來記憶區分這兩個符號的。windows下目錄路徑用的分隔符號與linux相反。
| 管道符是將符號左邊命令的標準輸出作為符號右邊的標準輸入參數。管道在shell腳本中十分重要。shell腳本語言沒有其他編程語言的函數庫,不過shell可以調用linux安裝的軟件工具,尤其是集成在linux發行版的小工具。下面再介紹幾個linux附帶工具。
cut 文本分割工具,參數有:-d 分隔符,-f 指定段號,-c 指定第幾個字符。示例cut -d ":" -f 2 a.txt
就是將a.txt以冒號做標志分隔每行,然后標準輸出第二段。
sort 文本排序工具,參數有:-n 以數字排序,字母和符號以零處理,-r 反序排序,-t 指定分隔符常與-k搭配使用,-kn1/-kn1,n2 指定第幾段排序,先要用-t指定怎樣分隔。sort工具默認用ascii碼排序。
wc 文本統計工具,參數有:-l 統計行數,-m 統計字符數,-w 統計詞。統計詞數時是以空格區分詞的,“a,b”中間沒有空格(一個或多個)則按一個詞算。
uniq 文本去重工具,參數有:-c統計行數。uniq經常與sort一起使用,要先排序再去重。
tee 和>類似,重定向的同時還在屏幕顯示。參數-a 和>>類似,用于文本后追加。
tr 替換字符。示例tr 'a' 'b'
將a替換為b。如果是大小寫替換:tr '[a-z]' '[A-Z]'
split 文本切割工具,參數有:-b 指定切割后分文件大小(默認單位為字節),-l 指定切割后行數。split命令最后可以指定切割后的文件前綴,例如split -b 10M 1.txt abc
切割1.txt,切割后的文件以abc開頭,每個文件10M。
shell特殊符號總結
$
變量前綴,!$
表示上一條命令最后的參數。$ 在正則表達式中表示行尾。
; 多條命令寫到一行,用分號分割。
~ 用戶家目錄。正則表達式中表示匹配符。
& 放到命令后面,會把命令放到后臺運行。也可以表示標準輸出和標準錯誤,例如&> 1.txt
表示將標準輸出和錯誤輸出重定向到1.txt。
> >> 2> 2>> &>
是常用的重定向和重定向追加的幾個形式。
[ ] 表示指定總括號中字符中的一個,例如[0-9]表示0-9任一數字,[a-zA-Z]表示任一小寫或大寫字母,[abc]表示a、b、c中的一個。
|| 和 && 表示邏輯,用于命令之間。command1 && command2 表示執行command1成功后才執行command2。command1 || command2 表示執行command1后執行command2,有一個命令成功則表示這個語句成功(即,如果兩條命令有一條成功,則echo $?
返回0)