Linux下cut命令用法詳解(原創:frozen_sucker(冰棍))

來源:互聯網
上載者:User

有時我們經常會遇到這樣一些問題:有一頁電話號碼薄,上面按順序規則地寫著人名、家庭住址、電話、備忘等,此時我們只想取出所有人的名字和其對應的電話號碼,你有幾種方法可以實現呢

確實這種縱向定位的方式用常規辦法難以實現,這時,cut
就可以大顯身手了。

What’s cut?

子曰:cut
命令可以從一個文字檔或者文字資料流中提取文本列。

命令用法:

      
cut -b list [-n]

      
cut -c list

      
cut -f list [-d delim][-s]

l     


上面的-b
、-c
、-f
分別表示位元組、字元、欄位(即byte
、character
、field
);

l     


list
表示-b
、-c
、-f
操作範圍,-n
常常表示具體數字;

l     


file
表示的自然是要操作的文字檔的名稱;

l     


delim
(英文全寫:delimiter
)表示分隔字元,預設情況下為TAB

l     


-s
表示不包括那些不含分隔字元的行(這樣有利於去掉注釋和標題)

上面三種方式中,表示從指定的範圍中提取位元組(-b
)、或字元(-c
)、或欄位(-f
)。

範圍的表示方法:

N

只有第N項

N-

從第N項一直到行尾

N-M

從第N項到第M項(包括M)

-M

從一行的開始到第M項(包括M)

-

從一行的開始到結束的所有項


下面是執行個體,先以較簡單的“命令用法”中提及的第二條開始講起:


interrupts
檔案中的字元排列非常齊整,正適合我們切豆腐。

但這裡我們只對兩個數字列感興趣,用法如下:


裡面還有一些不需要的內容,精減一下:


關於Regex的使用,請自行查閱相關資料。

 

合到一起:

哇,果然夠帥!!

不相鄰列的截選又應該如何做呢?


這種方式需要事先確定佔多少個字元位置,不僅麻煩,而且容易出錯。

下面的問題該怎麼去做?

這就是第二講:使用cut –f
提取文本中的欄位。

cut –c
主要是用來在固定字元位置或個數的文字檔中提取,對於上面的例子就顯得無能為力了。仔細觀察,發現passwd
檔案有個規律,就是以冒號來區分不同的段的文本,於是。。。

怎麼樣,好玩吧~!

繼續,建立一個文字檔,名為a.txt
,名字有點土,湊合著用吧。


A1
、B1
、C1
所代表的行字元之間均以TAB
分隔,D1
卻是以空格來分開的。

 


看到-s
的作用了嗎?(
因為第一行不含有任何TAB
字元,所以直接被剔除了)
,而最後一行(
即D1
行)
,是以空格區分間距,所以也不合要求。

 


多了個參數,這個我沒講,只要你認為自己不傻,就自己猜吧。

 

好了,下面是最後一個用法的講解了:


 


因為虛擬終端下無法顯示漢字,所以我只好回到圖形下,就成這個白不垃圾的樣子啦,忍忍吧,就快講完了。


在這個檔案中,每個漢字都是用半形空格分隔的。




 

 

用cut –c
已經成功了,下面試試cut –b
怎麼樣?



沒有反應,why

 

原因在於漢字本身是雙位元組的,cut –c
把漢字“我”當成一個字元來處理,而cut –b
是以位元組來處理,把“我”拆成了兩個位元組,結果是字元被“切成兩半”,因此無法正常顯示。

原因找到了,要怎麼辦才好呢?


 


耶!!!
搞定。


OK
,all is done
。就到這裡吧,休息,休息。。。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.