Linux下cut命令的使用

2021-06-28 02:43:46 字數 4014 閱讀 3639

linux下有諸多進行文字處理的命令,這裡介紹的是cut命令。

cut命令能夠對文字檔案中的行,進行按位元組、字元和字段進行剪下,然後將指定的相應部分寫到標準輸出。如果沒有給定檔名,cut命令將預設讀取標準輸入。

1、cut命令的語法總括

cut [file..]

從上面的格式上不難看出,cut命令的使用主要有三種方式,對應三種不同的引數形式,上面已經分別用不同的顏色進行了標註。其中紅色的部分是對應按位元組剪下,綠色的部分是對應按字元剪下,棕色的部分是對應按欄位剪下。這三種方式中,都用到了list引數,下面簡單介紹下list引數的幾種形式:

下面分別介紹按位元組、字元和字段剪下。

2、按位元組剪下

如上面語法中描述的那樣,按位元組剪下應該使用-b選項。這裡要注意-n選項的使用:-n選項和-b選項一起使用,如果某個字元(這裡指多位元組字元)的最後乙個位元組落在list指定的範圍內的話就將該字元列印,如果沒有,就不列印該字元;如果沒有-n選項,list指定的範圍如果分隔了乙個多位元組字元,那麼就會列印出亂碼。下面是幾個例子,這裡用作例子的檔案是乙個隨便生成的人名列表,名稱是data.txt,內容如下:

$ cat data.txt 

aname:agender:aprofession:abirthday:aheight:aetc.

aname:agender:aprofession:abirthday:aheight:aetc.

abbie cornishi:female:actor:19820807:1.73m:klondike

hara mikie:female:pictorial model:19870703:1.62m:oscar promotion co., ltd.

drew barrymore:female:actor:19750222:1.63m:music and lyrics

kobe bryant:male:nba player:19780823:1.98m:los angeles lakers

timothy theodore duncan:male:nba player:19760425:2.11m:san antonio spurs

tony parker:male:nba player:19820517:1.88m:san antonio spurs

manu ginóbili:male:nba player:19770728:1.98m:san antonio spurs

lamarcus nurae aldridge:male:nba player:19850719:2.11m:portland trail blazers

aname:agender:aprofession:abirthday:aheight:aetc.

$

下面按位元組剪下該檔案:

$ cut -b 1-3,16- data.txt 

anaprofession:abirthday:aheight:aetc.

anaprofession:abirthday:aheight:aetc.

abbfemale:actor:19820807:1.73m:klondike

harle:pictorial model:19870703:1.62m:oscar promotion co., ltd.

drefemale:actor:19750222:1.63m:music and lyrics

kobe:nba player:19780823:1.98m:los angeles lakers

time duncan:male:nba player:19760425:2.11m:san antonio spurs

tone:nba player:19820517:1.88m:san antonio spurs

manmale:nba player:19770728:1.98m:san antonio spurs

lamaldridge:male:nba player:19850719:2.11m:portland trail blazers

anaprofession:abirthday:aheight:aetc.

本來想演示下-n選項的用法,我的ubuntu的機器上就是不列印亂碼,可能和我終端的設定有關係。換了一台centos的機器,下面是例子:

$ cat chinese.txt 

科比布萊恩特

洛杉磯湖人

吉諾比利

聖安東尼奧馬刺

$ cut -b 3 chinese.txt ��

��$ cut -b 3 -n chinese.txt 科洛

吉聖$

經過這個實驗,你知道乙個中文字元大約佔幾個位元組了吧。

3、按字元剪下

按字元剪下比較簡單,就是-c選項,下面是例子。

$ cut -b 1-4,5 data.txt 

aname

aname

abbie

hara

drew

kobe

timot

tony

manu

lamar

aname

$

4、按欄位剪下

按欄位剪下的選項是-f(field)。在使用按欄位剪下時,要注意下面的兩個選項:

下面是幾個例子:

$ cut -f 1,3 -d ' ' data.txt     //指定空格為字段分隔符,列印第1,3欄位

aname:agender:aprofession:abirthday:aheight:aetc.

aname:agender:aprofession:abirthday:aheight:aetc.

abbie

hara model:19870703:1.62m:oscar

drew and

kobe player:19780823:1.98m:los

timothy duncan:male:nba

tony player:19820517:1.88m:san

manu player:19770728:1.98m:san

lamarcus aldridge:male:nba

aname:agender:aprofession:abirthday:aheight:aetc.

$ cut -f 1,3 -d ' ' -s data.txt //使用-s選項,忽略沒有字段分隔符空格的行,可以看到結果中沒有空格的行沒有再被輸出

abbie

hara model:19870703:1.62m:oscar

drew and

kobe player:19780823:1.98m:los

timothy duncan:male:nba

tony player:19820517:1.88m:san

manu player:19770728:1.98m:san

lamarcus aldridge:male:nba

$ cut -f 1,3 -d ':' data.txt //指定『:』為字段分隔符,列印第1、3欄位

aname:aprofession

aname:aprofession

abbie cornishi:actor

hara mikie:pictorial model

drew barrymore:actor

kobe bryant:nba player

timothy theodore duncan:nba player

tony parker:nba player

manu ginóbili:nba player

lamarcus nurae aldridge:nba player

aname:aprofession

$

到這裡,cut命令的解釋就到此結束了。有什麼新的內容,回頭遇到了再補充。^_^

Linux 下cut的使用

命令是 cut 從字面上來看,cut 命令與剪下有關,實際也是如此,cut 命令將乙個字串按某種特定的方式進行裁剪提取並輸出。結合其它命令,cut 可以很輕鬆的提取其它命令輸出結果中我們所需要的內容。cut基本格式 cut 選項 檔案 命令選項 b 以位元組為單位進行分割 c 以字元為單位進行分割 ...

Linux命令 cut的使用

cut是將文字進行按列切分的乙個小工具。製表符為預設定界符 1 cut f filed list filename 例如 cut f 2,3 filename 該命令會將filename檔案內容的第2,第3列顯示出來 2 排除某列 complement 例如 cut f 2 complement f...

Linux 命令 cut 命令詳解

原文 為了控制滾屏,可以按ctrl s鍵,停止滾屏 按ctrl q鍵可以恢復滾屏。按ctrl c 中斷鍵可以終止該命令的執行,並且返回shell提示符狀態。cut 選項 引數 b 僅顯示行中指定直接範圍的內容 c 僅顯示行中指定範圍的字元 d 指定欄位的分隔符,預設的字段分隔符為 tab f 顯示指...