Linux命令之文本處理(二)

來源:互聯網
上載者:User

Linux命令之文本處理(二)

cut命令
cut命令用來操作檔案的列,可以視為列編輯器;與之對應是大多數的行“編輯器”,如sed、grep、sort等,它們操作文本時,以行為單位。
cut的主要功能就是輸出文本的某一列或幾列。對於英文文本,一個字元就佔據一列,所以輸出幾列就是輸出幾個字元。
主要選項如下:

-c : 指定要輸出的列數,可以是單個數字,也可以是如3-5之類的範圍。

m@meng:~$ cat new apple   3Apple   7pear    6pear    4banana  1orange  11m@meng:~$ cut -c 1-6 new apple  Apple  pear    pear    bananaorange

-b : 指定每行要輸出的位元組數,與-c選項基本一樣,尤其對英文文本,因為一個英文字母就是一個位元組(我覺得把英文改成ASCII文本更合適)。

m@meng:~$ cut -b 3 new ppaana

-f : cut更強大的地方在於處理格式化的文本,即每行可以分為幾個欄位的那種。似乎很多命令都提供這種功能,比如sort,但是做的都很勉強,關鍵是它們對分隔字元的識別太差了。在這方面,awk遙遙領先。
-f選項用來指定輸出哪個欄位,預設的分隔字元是tab。其實多個空格似乎也能識別,有時間我會專門研究一下分隔字元的問題。

m@meng:~$ cut -f 2 new 3764111

實際上new檔案中名字和數字之間的分隔字元並不是tab,而cut卻正確識別了;然而,這種情況是不確定的,比如下例:

m@meng:/etc/network$ sudo netstat -apn | sed '3,6 p' -n | cut -f 1tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2899/sendmail: MTA:tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1192/named tcp 0 0 0.0.0.0:538 0.0.0.0:* LISTEN 1251/gdomap tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 672/smbd 

這麼明顯的分隔都沒能識別,源碼怎麼寫的???

-d : 指定分隔字元,一般配合-f使用。分隔字元一般只能指定單個字元。 -s : 僅輸出包含分隔字元的行。它會覆蓋-f的一些功能,因為只有-f時,會同時輸出不包含分隔字元的行;加上-s選項後,就會刪除掉沒有包含分隔字元的行。 –output-delimiter=str : 指定輸出分隔字元為str。預設與輸入分隔字元一致。
m@meng:~$ cut --output-delimiter=: -f 1-2 new apple: 3Apple: 7pear: 6pear: 4banana: 1orange: 11m@meng:~$ cut --output-delimiter=: -c 1-4 new applApplpearpearbanaoran

顯然,這個選項只對不同欄位之間有效。。。

uniq命令
可以檢測出文本中重複的行,類似與sort中-u選項。

-d : 只顯示那些重複的行。

m@meng:~$ cat new apple 3apple 3Apple 7pear 6pear 4banana 1orange 11m@meng:~$ uniq -d new apple 3

-c,–count : 在每行前面顯示重複次數。

m@meng:~$ uniq -c new 2 apple 31 Apple 71 pear 61 pear 41 banana 11 orange 11

-i : 忽略大小寫。

-u : 僅輸出不重複的行。
m@meng:~$ uniq -u new Apple 7pear 6pear 4banana 1orange 11

主要的就是這幾個選項了,其他的比如-s、-f等,試了幾次不管用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.