8.10 shell特殊符號cut命令
8.11 sort_wc_uniq命令
8.12 tee_tr_split命令
8.13 shell特殊符號下
擴展
- source exec 區(qū)別 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特殊符號總結(jié)
- 表示任意個任意字符,? 表示任意一個字符钢颂。這兩個是比較常見的通配符,windows下也常用井仰。
shell腳本中是注釋字符殴胧。終端命令提示符#默認表示root用戶礼预,普通用戶是$。
\ 是脫義字符实蓬。/是斜杠俏脊,我以前會把兩個符號記混全谤。linux中斜杠使用更多一些,比如目錄路徑爷贫、終端命令換行等认然。斜杠是橫杠左端被壓下,我是用“先左后右”“左為尊左常用”來記憶區(qū)分這兩個符號的漫萄。windows下目錄路徑用的分隔符號與linux相反季眷。
| 管道符是將符號左邊命令的標(biāo)準(zhǔn)輸出作為符號右邊的標(biāo)準(zhǔn)輸入?yún)?shù)。管道在shell腳本中十分重要卷胯。shell腳本語言沒有其他編程語言的函數(shù)庫子刮,不過shell可以調(diào)用linux安裝的軟件工具,尤其是集成在linux發(fā)行版的小工具窑睁。下面再介紹幾個linux附帶工具挺峡。
cut 文本分割工具,參數(shù)有:-d 分隔符担钮,-f 指定段號橱赠,-c 指定第幾個字符。示例cut -d ":" -f 2 a.txt
就是將a.txt以冒號做標(biāo)志分隔每行箫津,然后標(biāo)準(zhǔn)輸出第二段狭姨。
sort 文本排序工具,參數(shù)有:-n 以數(shù)字排序苏遥,字母和符號以零處理饼拍,-r 反序排序,-t 指定分隔符常與-k搭配使用田炭,-kn1/-kn1,n2 指定第幾段排序师抄,先要用-t指定怎樣分隔。sort工具默認用ascii碼排序教硫。
wc 文本統(tǒng)計工具叨吮,參數(shù)有:-l 統(tǒng)計行數(shù),-m 統(tǒng)計字符數(shù)瞬矩,-w 統(tǒng)計詞茶鉴。統(tǒng)計詞數(shù)時是以空格區(qū)分詞的,“a景用,b”中間沒有空格(一個或多個)則按一個詞算涵叮。
uniq 文本去重工具,參數(shù)有:-c統(tǒng)計行數(shù)。uniq經(jīng)常與sort一起使用围肥,要先排序再去重剿干。
tee 和>類似蜂怎,重定向的同時還在屏幕顯示穆刻。參數(shù)-a 和>>類似,用于文本后追加杠步。
tr 替換字符氢伟。示例tr 'a' 'b'
將a替換為b。如果是大小寫替換:tr '[a-z]' '[A-Z]'
split 文本切割工具幽歼,參數(shù)有:-b 指定切割后分文件大卸渎唷(默認單位為字節(jié)),-l 指定切割后行數(shù)甸私。split命令最后可以指定切割后的文件前綴诚些,例如split -b 10M 1.txt abc
切割1.txt,切割后的文件以abc開頭皇型,每個文件10M诬烹。
shell特殊符號總結(jié)
$
變量前綴,!$
表示上一條命令最后的參數(shù)弃鸦。$ 在正則表達式中表示行尾绞吁。
; 多條命令寫到一行唬格,用分號分割家破。
~ 用戶家目錄。正則表達式中表示匹配符购岗。
& 放到命令后面汰聋,會把命令放到后臺運行。也可以表示標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤喊积,例如&> 1.txt
表示將標(biāo)準(zhǔn)輸出和錯誤輸出重定向到1.txt马僻。
> >> 2> 2>> &>
是常用的重定向和重定向追加的幾個形式。
[ ] 表示指定總括號中字符中的一個注服,例如[0-9]表示0-9任一數(shù)字,[a-zA-Z]表示任一小寫或大寫字母,[abc]表示a韭邓、b、c中的一個溶弟。
|| 和 && 表示邏輯女淑,用于命令之間。command1 && command2 表示執(zhí)行command1成功后才執(zhí)行command2辜御。command1 || command2 表示執(zhí)行command1后執(zhí)行command2鸭你,有一個命令成功則表示這個語句成功(即,如果兩條命令有一條成功,則echo $?
返回0)