shell學(xué)習(xí)筆記

1tr命令


用途:translate 可以對(duì)字符進(jìn)行替換淤井、刪除卸留、壓縮蓉冈。
語(yǔ)法:tr 選項(xiàng)  string1 string2
選項(xiàng): 
        -c complement 補(bǔ)集
        -d delete     刪除
        -s squence    壓縮(將重復(fù)的字符濃縮)
string1 要被替換猖毫,刪除弟胀,壓縮的源字符串狸演,string2 用來(lái)替換的字符串
eg:echo “HELLO WORLD” | tr ‘A-Z’ ‘a(chǎn)-z’
      hello world 字符串不是整體進(jìn)行替換项阴,是按照順序一個(gè)一個(gè)進(jìn)行替換的
eg:echo “hello world” | tr -d ‘hello’ 
      wrd  tr 會(huì)刪除它匹配到的全部字符串 
eg:echo “a1b2c3d4” | tr -d ‘0-9’ 
       abcd
eg:“aa1dd/*4-#5$” | tr -d -c ‘0-9’ 
       145 -c字符集補(bǔ)集滑黔,將不在補(bǔ)集中的所有字符刪除        

2 grep命令


用途:用于在一個(gè)或多個(gè)文件中查找關(guān)鍵字;不用于查找文件环揽;
語(yǔ)法:grep 選項(xiàng)   'find-char'  filename  

在grep命令中輸入字符串參數(shù)時(shí)略荡,最好用雙引號(hào)括起來(lái),例如:“string”.
 這樣可以防止被誤解為shell命令歉胶,二來(lái)可以查找多個(gè)單詞組成的字符串汛兜,例如:“jet  liu”.
 不用雙引號(hào)仰剿,liu會(huì)被認(rèn)為是另一個(gè)文件.
 在調(diào)用變量時(shí)法精,也應(yīng)該使用雙引號(hào). grep“$var”.
 在調(diào)用模式匹配時(shí),應(yīng)使用單引號(hào).
選項(xiàng):
       -f pat-file(合適的) 從pat-file中按照模式進(jìn)行匹配像鸡,相當(dāng)于指定文件
       -i 模式匹配忽略大小寫(xiě)
       -l 列出匹配模式的文件名稱辫塌,而非匹配的具體行
       -n 顯示匹配的行及行號(hào)
       -v 反向選擇漏策,亦即顯示出沒(méi)有 '搜尋字符串' 內(nèi)容的那一行
       -c 只輸出匹配行的計(jì)數(shù).
       -P 利用perl 正則語(yǔ)法進(jìn)行匹配.
  egrep 可以讓一個(gè)文件作為保存的字符串,進(jìn)行匹配臼氨,需要使用-f開(kāi)關(guān).
  eg:grep -n '[program]'  regular_express.txt
         9:Oh! This is my first program.

3 sort


用途:將文件的每一行作為一個(gè)單位掺喻,相互比較,最后升序輸出(默認(rèn)升序)
語(yǔ)法:sort 選項(xiàng) file
選項(xiàng):
       -r 從大到小排序
       -o 將排序結(jié)果寫(xiě)到我們想要寫(xiě)的文件里
          如果储矩,將原文件排序后寫(xiě)到另一個(gè)文件感耙,用-o和> 均可,若還寫(xiě)到原文件持隧,必須-o
       -n 以數(shù)值大小排序     -nr 以數(shù)值大小 反向排序
       -t 制定某個(gè)字符作為分隔字符 (同 cut -d)
       -k 定義排序鍵值字段(按列進(jìn)行排序)

eg:sort -n -k 2 -t:t1.txt 
    按t1中的第二列升序輸出
eg:liu  172 10000
    cai  168 5000
    guo  178 3000
    zhao 168 2000
    zhou 172 5000
按姓名順序排序:sort  -t ' '  -k 1 file
  身高              :sort -t ' '  -k 2 file
按身高即硼,身高相同,按工資升序排序:sort -n -t ' '  -k2 -k3 file (有的無(wú)法識(shí)別兩個(gè)-k選項(xiàng))
按工資降序排序屡拨,工資相同只酥,按身高升序排序: sort  -t ' ' -k 3r -k 2n file
其中褥实,2n,3r中的n层皱,r屬于排序鍵值字段性锭。相當(dāng)于 -n,-r叫胖。

排序鍵值字段類型
   b 忽略開(kāi)頭的空白
   d 字典順序
   f 不區(qū)分字母的大小寫(xiě)
   i 忽略無(wú)法打印的字符
   n 以數(shù)字比較
   r 倒置順序的順序

eg:sort -t ' ' -k 1.2 file
表示對(duì)一個(gè)域的第二個(gè)字符開(kāi)始到本域最后一個(gè)字符位置的字符串進(jìn)行排序
eg:sort -t ' ' -k 1.2 1.2 -k 3,3nr file
只對(duì)第二個(gè)字母進(jìn)行排序草冈,沒(méi)有后面的1.2,將從第二個(gè)字符開(kāi)始到本域最后一個(gè)字符位置的字符串進(jìn)行排序
-k3 ,3nr 只對(duì)第三個(gè)域進(jìn)行降序排序

4 sed命令


用途:sed是一種在線編輯器,一次處理一行內(nèi)容瓮增。
     處理時(shí)怎棱,把當(dāng)前處理的行存儲(chǔ)在臨時(shí)緩沖區(qū)中,稱為“模式空間” (pattern space)绷跑,接著用sed命令處理緩沖區(qū)中的內(nèi)容拳恋,處理完成后,把緩沖區(qū)的內(nèi)容送往屏幕砸捏。接著處理下一行谬运,這樣不斷重復(fù),直到文件末尾垦藏。文件內(nèi)容并沒(méi)有改變梆暖,除非你使用重定向存儲(chǔ)輸出。Sed主要用來(lái)自動(dòng)編輯一個(gè)或多個(gè)文件掂骏;簡(jiǎn)化對(duì)文件的反復(fù)操作轰驳;編寫(xiě)轉(zhuǎn)換程序等

語(yǔ)法:sed  選項(xiàng)  'edit command'  file
     sed  -f  script_file  file
選項(xiàng):-e 'edit command' 
        將edit command 使用在輸入數(shù)據(jù)上,當(dāng)有多個(gè)命令需要應(yīng)用時(shí)弟灼,就必須使用-e
        -f script-file
         從指定的腳本里讀取命令
        -n 
         不是每個(gè)最后已修改結(jié)果行都正常打印级解,而是顯示以p指定的(處理過(guò)的)行
 eg:sed  's/\/home\/tos\//\/home\/lt\//' filename
     將/home/tos/ 替換為 /home/lt/   (注意,/ 田绑; :都可以作為定界符)       
 eg:sed  's/moding/moden/g' filename
     將moding替換為modern
 eg:sed -n 's/^west/north/p' filename
     將west開(kāi)頭的行替換為north勤哗,并顯示出來(lái)
 eg:sed  '/^ *$/d filename
     刪除文件的空行
 eg:sed 's/[0-9] [0-9][0-9]$/& .5/' filename
     將file文件中以3個(gè)數(shù)字結(jié)尾的行,替換為原來(lái)的數(shù)字+ .5辛馆,&代表搜索到的字符串.
 eg:sed 's/\(mod)ing/\1en/g' filename
     將moding 替換為moden
     

 eg:sed '2,5d' file
     顯示除去2-5行的文件
 eg:sed '/10[1-4]/d'
     顯示文件除去101-104的行
eg:sed -n '/101/,/105/p' < example.txt
    顯示example中從101-105的行.
eg:sed -e 's/foo/bar/g'  -e 's/chicken/cow/g' filename >file1.txt
    通過(guò)-e將多個(gè)命令傳遞給sed

& 在替代文本里表示:從此點(diǎn)開(kāi)始俺陋,替代成匹配于正則表達(dá)式的整個(gè)文本
g global 全局性 全部的意思 沒(méi)有g(shù)的話,只會(huì)對(duì)第一個(gè)匹配到的進(jìn)行處理
s 命令里的空模式昙篙,指使用前一個(gè)正則表達(dá)式

5 cut 命令


用途:選取命令,取出所需诱咏,一般針對(duì)行操作.
語(yǔ)法:cut  [-bn] file 或者cut -c file  cut -df file苔可,必須指定-b,-c,-f之一
選項(xiàng):-b 以字節(jié)為單位進(jìn)行分割
     -c 以字符為單位進(jìn)行分割
     -d 指定分隔符,用來(lái)幫助-f
     -f 指定顯示那個(gè)區(qū)域.
-b -c袋狞,只能在固定的文檔中提取信息焚辅,很多時(shí)候映屋,bc沒(méi)有區(qū)別.
對(duì)于非固定格式的文檔,用域分隔:
cut -d :-f 1
用-d設(shè)置間隔符是:同蜻,然后用-f來(lái)截取我們所規(guī)定的第一個(gè)域.
cut -d :-f 3-5
截取以:作為分隔符的第三個(gè)到第五個(gè)這部分內(nèi)容.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末棚点,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子湾蔓,更是在濱河造成了極大的恐慌瘫析,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,290評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件默责,死亡現(xiàn)場(chǎng)離奇詭異贬循,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)桃序,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,107評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門杖虾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人媒熊,你說(shuō)我怎么就攤上這事奇适。” “怎么了芦鳍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,872評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵嚷往,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我怜校,道長(zhǎng)间影,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,415評(píng)論 1 283
  • 正文 為了忘掉前任茄茁,我火速辦了婚禮魂贬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裙顽。我一直安慰自己付燥,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,453評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布愈犹。 她就那樣靜靜地躺著键科,像睡著了一般。 火紅的嫁衣襯著肌膚如雪漩怎。 梳的紋絲不亂的頭發(fā)上勋颖,一...
    開(kāi)封第一講書(shū)人閱讀 49,784評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音勋锤,去河邊找鬼饭玲。 笑死,一個(gè)胖子當(dāng)著我的面吹牛叁执,可吹牛的內(nèi)容都是我干的茄厘。 我是一名探鬼主播矮冬,決...
    沈念sama閱讀 38,927評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼次哈!你這毒婦竟也來(lái)了胎署?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,691評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤窑滞,失蹤者是張志新(化名)和其女友劉穎琼牧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體葛假,經(jīng)...
    沈念sama閱讀 44,137評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡障陶,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,472評(píng)論 2 326
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了聊训。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片抱究。...
    茶點(diǎn)故事閱讀 38,622評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖带斑,靈堂內(nèi)的尸體忽然破棺而出鼓寺,到底是詐尸還是另有隱情,我是刑警寧澤勋磕,帶...
    沈念sama閱讀 34,289評(píng)論 4 329
  • 正文 年R本政府宣布妈候,位于F島的核電站,受9級(jí)特大地震影響挂滓,放射性物質(zhì)發(fā)生泄漏苦银。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,887評(píng)論 3 312
  • 文/蒙蒙 一赶站、第九天 我趴在偏房一處隱蔽的房頂上張望幔虏。 院中可真熱鬧,春花似錦贝椿、人聲如沸想括。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,741評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瑟蜈。三九已至,卻和暖如春渣窜,著一層夾襖步出監(jiān)牢的瞬間铺根,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工乔宿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留夷都,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,316評(píng)論 2 360
  • 正文 我出身青樓予颤,卻偏偏與公主長(zhǎng)得像囤官,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛤虐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,490評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容