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 顯示指...