重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
可以用awk、sed、tr、perl都能實(shí)現(xiàn)
創(chuàng)新互聯(lián)專業(yè)提供成都主機(jī)托管四川主機(jī)托管成都服務(wù)器托管四川服務(wù)器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價(jià)格,機(jī)房位于中國(guó)電信/網(wǎng)通/移動(dòng)機(jī)房,電信內(nèi)江機(jī)房服務(wù)有保障!
set s = '"stratum":{"accepted_shares":1,"algorithm"'
set a = `echo $s | awk -F '["/:]' '{print $4}'`
# cat /proc/meminfo |grep -w "MemTotal"
MemTotal:? ? ? 32781228 kB
使用tr命令截取字符串
# cat /proc/meminfo |grep -w "MemTotal" | tr -cd "[0-9]"
32781228
cut 命令在 man 文檔中的含義是 刪除文件中每一行的指定部分 。其大意就跟 cut 單詞本身的含義一樣,是用來(lái)剪切數(shù)據(jù)的。
輸出第二個(gè)字符
以逗號(hào)為分割符,截取第二部分
cut命令可以將一串字符作為列來(lái)顯示,字符字段的記法:
例如:打印從第 8 個(gè)字符開(kāi)始到結(jié)尾
參考鏈接:
從 截去 的角度上說(shuō),總結(jié)為: 左#右%
從 截取 的角度上說(shuō),反過(guò)來(lái)。
其中,string 表示要截取的字符,chars 是指定的字符(或者子字符串), * 是通配符的一種,表示任意長(zhǎng)度的字符串。
*chars 連起來(lái)使用的意思是:忽略左邊的所有字符,直到遇見(jiàn) chars(chars 不會(huì)被截取)。
如果希望直到最后一個(gè)指定字符(子字符串)再匹配結(jié)束,那么可以使用##,具體格式為:
2.使用 % 截取左邊字符
使用%號(hào)可以截取指定字符(或者子字符串)左邊的所有字符,具體格式如下:
請(qǐng)注意 * 的位置,因?yàn)橐厝?chars 左邊的字符,而忽略 chars 右邊的字符,所以*應(yīng)該位于 chars 的右側(cè)。其他方面%和#的用法相同,這里不再贅述,僅舉例說(shuō)明:
本篇主題:詳細(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)被我寫錯(cuò)了, EOF 寫成了 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í)寫入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),該字符將被寫出;否則,該字符將被排除。
使用說(shuō)明:
cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標(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é)到了分享一下啊!