cut命令的用法如下:
創(chuàng)新互聯(lián)長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為吉利企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站建設(shè),吉利網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
cut - 在文件的每一行中提取片斷
在 每個(gè)文件 FILE 的 各行 中, 把 提取的 片斷 顯示在 標(biāo)準(zhǔn)輸出.
-b, --bytes=LIST
輸出 這些 字節(jié)
-c, --characters=LIST
輸出 這些 字符
-d, --delimiter=DELIM
使用 DELIM 取代 TAB 做 字段(field) 分隔符
-f, --fields=LIST
輸出 這些 字段
-n
(忽略)
-s, --only-delimited
不顯示 沒(méi)有 分隔符 的 行
--output-delimiter=STRING
使用 STRING 作為 輸出分隔符, 缺省 (的 輸出分隔符) 為 輸入分隔符
--help
顯示 幫助信息, 然后 結(jié)束
--version
顯示 版本信息, 然后 結(jié)束
使用 且 只使用 -b, -c 或 -f 中的 一個(gè) 選項(xiàng). LIST 由 一個(gè) 范圍 (range) 或 逗號(hào) 隔開(kāi)的 多個(gè) 范圍 組成. 范圍 是 下列 形式 之一:
N
第 N 個(gè) 字節(jié), 字符 或 字段, 從 1 計(jì)數(shù) 起
N-
從 第 N 個(gè) 字節(jié), 字符 或 字段 直至 行尾
N-M
從 第 N 到 第 M (并包括 第M) 個(gè) 字節(jié), 字符 或 字段
-M
從 第 1 到 第 M (并包括 第M) 個(gè) 字節(jié), 字符 或 字段
如果 沒(méi)有 指定 文件 FILE, 或 FILE 是 -, 就從 標(biāo)準(zhǔn)輸入 讀取 數(shù)據(jù).
cut 命令在 man 文檔中的含義是 刪除文件中每一行的指定部分 。其大意就跟 cut 單詞本身的含義一樣,是用來(lái)剪切數(shù)據(jù)的。
輸出第二個(gè)字符
以逗號(hào)為分割符,截取第二部分
cut命令可以將一串字符作為列來(lái)顯示,字符字段的記法:
例如:打印從第 8 個(gè)字符開(kāi)始到結(jié)尾
本篇主題:詳細(xì)學(xué)習(xí)介紹cat和cut命令
cat 是一個(gè) 文本文件****查看 和 連接 工具
語(yǔ)法結(jié)構(gòu):
$ cat [選項(xiàng)] [文件]
參數(shù)選項(xiàng):
-A, --show-all 等價(jià)于 -vET
-b, --number-nonblank 對(duì)非空輸出行編號(hào)
-e 等價(jià)于 -vE
-E, --show-ends 在每行結(jié)束處顯示 $
-n, --number 對(duì)輸出的所有行編號(hào)
-s, --squeeze-blank 不輸出多行空行
-t 與 -vT 等價(jià)
-T, --show-tabs 將跳 字符顯示為 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 顯示此幫助信息并離開(kāi)
Cat主要有以下2大功能:
1、一次顯示(查看)整個(gè)文件,cat后面直接接文件名。
$ cat filename
比如以下,查看profile文件, -n參數(shù)是顯示 行
[root@localhost ~]# cat /etc/profile 注:查看/etc/目錄下的profile文件內(nèi)容;
[root@localhost ~]# cat -b /etc/fstab 注:查看/etc/目錄下的profile內(nèi)容,并且對(duì)非空白行進(jìn)行編號(hào),行號(hào)從1開(kāi)始;
[root@localhost ~]# cat -n /etc/profile 注:對(duì)/etc目錄中的profile的所有的行(包括空白行)進(jìn)行編號(hào)輸出顯示;
[root@localhost ~]# cat -E /etc/profile 注:查看/etc/下的profile內(nèi)容,并且在每行的結(jié)尾處附加 $ 符號(hào);
cat 加參數(shù)-n 和nl工具差不多,文件內(nèi)容輸出的同時(shí),都會(huì)在每行前面加上行號(hào);
[root@localhost ~]# cat -n /etc/profile
[root@localhost ~]# nl /etc/profile
cat 可以同時(shí)顯示多個(gè)文件的內(nèi)容,比如我們可以在一個(gè)cat命令上同時(shí)顯示兩個(gè)文件的內(nèi)容;
[root@localhost ~]# cat /etc/fstab /etc/profile
cat 對(duì)于內(nèi)容極大的文件來(lái)說(shuō),可以通過(guò)管道 | 傳送到more 工具,然后一頁(yè)一頁(yè)的查看;
[root@localhost ~]# cat /etc/fstab /etc/profile | more
2、cat 的創(chuàng)建、連接文件功能實(shí)例;
cat 有創(chuàng)建文件的功能,創(chuàng)建文件后,要以EOF或STOP結(jié)束;
[root@localhost ~]# cat linuxcat.txt EOF 注:創(chuàng)建linuxcat.txt文件;
如下圖所示:
cat 還有向已存在的文件追加內(nèi)容的功能;
[root@localhost ~]# cat linuxsir.txt EOF 注:我們向linuxcat.txt文件追加內(nèi)容;
(注:這里發(fā)現(xiàn)被我寫(xiě)錯(cuò)了, EOF 寫(xiě)成了 OEF ,輸出的時(shí)候要對(duì)應(yīng)輸出,咱不去究其原因)
cat 連接多個(gè)文件的內(nèi)容并且輸出到一個(gè)新文件中;
命令是:
[root@localhost ~]# cat name1 name2 name3 name4
注意: 其原理是把三個(gè)文件的內(nèi)容連接起來(lái),然后創(chuàng)建name4文件,并且把幾個(gè)文件的內(nèi)容同時(shí)寫(xiě)入name4中。 特別值得一提的是,如果您輸入到一個(gè)已經(jīng)存在的name4文件,會(huì)把name4內(nèi)容清空。(****見(jiàn)文末例子****)
實(shí)例: 假設(shè)我們有sir01.txt、sir02.tx和sir03.txt ,并且內(nèi)容如下;[root@localhost ~]# cat sir01.txt
123456
i am testing
[root@localhost ~]# cat sir02.txt
56789
BeiNan Tested
[root@localhost ~]# cat sir03.txt
09876
linuxsir.org testing
我想通過(guò)cat 把sir01.txt、sir02.txt及sir03.txt 三個(gè)文件連接在一起(也就是說(shuō)把這三個(gè)文件的內(nèi)容都接在一起)并輸出到一個(gè)新的文件sir04.txt 中。
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt** **sir04.txt
[root@localhost ~]# **more **sir04.txt
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
cat 把一個(gè)或多個(gè)已存在的文件內(nèi)容,追加到一個(gè)已存在的文件中
[root@localhost ~]# cat sir00.txt
linuxsir.org forever
[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt** **sir00.txt
[root@localhost ~]# cat sir00.txt
linuxsir.org forever
123456
i am testing
56789
BeiNan Tested
09876
linuxsir.org testing
警告:我們要知道********意思是創(chuàng)建,********是追加。千萬(wàn)不要弄混了。造成失誤可不是鬧著玩的;
cut是一個(gè)選取命令,就是將一段數(shù)據(jù)經(jīng)過(guò)分析,取出我們想要的。一般來(lái)說(shuō),選取信息通常是針對(duì)“行”來(lái)進(jìn)行分析的,并不是整篇信息分析的。
語(yǔ)法結(jié)構(gòu):
cut [-bn] [file] 或
cut [-c] [file] 或
cut [-df] [file]
選項(xiàng)參數(shù):
-b :以 字節(jié) 為單位進(jìn)行分割。這些字節(jié)位置將忽略多字節(jié)字符邊界,除非也指定了 -n 標(biāo)志。
-c :以 字符 為單位進(jìn)行分割。
-d : 自定義分隔符 ,默認(rèn)為制表符。
-f :與-d一起使用,指定顯示哪個(gè)區(qū)域。
-n :取消分割多字節(jié)字符。僅和 -b 標(biāo)志一起使用。如果字符的最后一個(gè)字節(jié)落在由 -b 標(biāo)志的 List 參數(shù)指示的br /范圍之內(nèi),該字符將被寫(xiě)出;否則,該字符將被排除。
使用說(shuō)明:
cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫(xiě)至標(biāo)準(zhǔn)輸出。
如果不指定 File 參數(shù),cut 命令將讀取標(biāo)準(zhǔn)輸入。必須指定 -b、-c 或 -f 標(biāo)志之一。
上一篇中也說(shuō)到cut的使用。
值得注意的是 '-' 表示的是一個(gè)區(qū)間, ‘,’ 表示的是單個(gè)字符
例子二: 以 ‘:’ 為分隔符,截取PATH環(huán)境變量第五個(gè)位置的字符
先來(lái)看看PATH變量存的內(nèi)容是什么
[2013012974@teach shell]$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/2013012974/bin
截取的結(jié)果:
從上面的例子中可以看出,以':'為分隔符,第五個(gè)位置是/usr/local/sbin
好了現(xiàn)在清晰了,****Cat**** 和****Cut****你學(xué)到了沒(méi)有?學(xué)到了分享一下啊!