指令名稱:cut
功能介紹:分割出指定文本檔案裡符合要求的内容
文法格式:cut -c num1-num2 -f m-n filename
常用參數說明:
-c num1-num2 表示顯示每一行的第m個字元到第n個字元;
-f m-n 表示顯示第m欄和第n欄(使用tab分隔)。
指令使用執行個體:
1.列印文本example開頭算起前6個字元:
$ cut -c 0-6 example cat example
test2
this is test1
shell>> cut -c0-6 example ## print 開頭算起前 6 個字元
test2
this i
2.一個文本file内容為:
---------file-----------
liubi 23 14000
---------file-----------
顯示第1欄和第3欄:
# cut -f 1,3 file
liubi 14000 cut用來從标準輸入或文本檔案中剪切列或域。剪切文本可以将之粘貼到一個文本檔案。
cut一般格式為:
cut [options] file1 file2
下面介紹其可用選項:
-c list 指定剪切字元數。
-f field 指定剪切域數。
-d 指定與空格和tab鍵不同的域分隔符。
-c 用來指定剪切範圍,如下所示:
-c1,5-7 剪切第1個字元,然後是第5到第7個字元。
-c1-50 剪切前50個字元。
-f 格式與-c相同。
-f1,5 剪切第1域,第5域。
-f1,10-12 剪切第1域,第10域到第12域。
例子:
wangnc> pg pers
P.Jones:Office Runner:ID897
S.Round:UNIX admin:ID666
L.Clip:Personl Chief:ID982
檔案中使用冒号“:”為域分隔符,故可用- d選項指定冒号,如-d:。如果有意觀察第3域,可以使用-f3。要抽取ID域。可使用指令如下:
wangnc> cut -d: -f3 pers
ID897
ID666
ID982
cut指令中剪切各域需用逗号分隔,如剪切域1和3,即名字和ID号,可以使用:
wangnc> cut -d: -f1,3 pers
P.Jones:ID897
S.Round:ID666
L.Clip:ID982
使用-c選項指定精确剪切數目。這種方法需确切知道開始及結束字元。通常我不用這種方法,除非在固定長度的域或檔案名上。
who -u | cut -c1-8
cut用來從文本檔案或标準輸出中抽取資料列或者域,然後再用paste可以将這些資料粘貼起來形成相關檔案。
粘貼兩個不同來源的資料時,首先需将其分類,并確定兩個檔案行數相同。paste将按行将不同檔案行資訊放在一行。預設情況下, paste連接配接時,用空格或tab鍵分隔新行中不同文本,除非指定-d選項,它将成為域分隔符。
paste格式為:
paste -d -s -file1 file2
選項含義如下:
-d 指定不同于空格或tab鍵的域分隔符。例如用@分隔域,使用- d @。
-s 将每個檔案合并成行而不是按行粘貼。
- 使用标準輸入。例如ls -l |paste ,意即隻在一列上顯示輸出。
例子:
wangnc> pg pas1
ID897
ID666
ID982
wangnc> pg pas2
P.Jones
S.Round
L.Clip
基本paste指令将pas1和pas2兩檔案粘貼成兩列:
wangnc> paste pas1 pas2
ID897 P.Jones
ID666 S.Round
ID982 L.Clip
通過交換檔案名即可指定哪一列先粘:
wangnc> paste pas2 pas1
P.Jones ID897
S.Round ID666
L.Clip ID982
要建立不同于空格或tab鍵的域分隔符,使用-d選項。下面的例子用冒号做域分隔符。
wangnc> paste -d: pas2 pas1
P.Jones:ID897
S.Round:ID666
L.Clip:ID982
要合并兩行,而不是按行粘貼,可以使用-s選項。下面的例子中,第一行粘貼為名字,第二行是ID号。
wangnc> paste -s pas1 pas2
ID897 ID666 ID982
P.Jones S.Round L.Clip
paste指令還有一個很有用的選項(-)。意即對每一個(-),從标準輸入中讀一次資料。使用空格作域分隔符,以一個4列格式顯示目錄清單。方法如下:
wangnc> ls /etc | paste -d" " - - - - - -
MANPATH PATH SHLIB_PATH SnmpAgent.d/ TIMEZONE X11/
acct/ aliases@ arp@ audeventstab audomon@ auto_master
auto_parms.log auto_parms.log.old backup@ backup.cfg bcheckrc@ bootpd@
bootpquery@ bootptab btmp@ catman@ checklist@ chroot@
clri@ cmcluster/ cmcluster.conf cmom.conf conf@ convertfs@
copyright cron@ csh.login d.cshrc@ d.exrc@ d.login@
也可以以一列格式顯示輸出:
wangnc> ls /etc | paste -d"" -
MANPATH
PATH
SHLIB_PATH
SnmpAgent.d/
TIMEZONE
X11/
acct/
aliases@
arp@
audeventstab
audomon@
auto_master
auto_parms.log
auto_parms.log.old
backup@
backup.cfg