天天看點

shell 特殊符号

1、特殊符号

shell 特殊符号

相關例子,詳見下圖,

shell 特殊符号

2、關于管道符

shell 特殊符号

(1)、cut 分割

-d 分隔符 -f 指定段号 -c 指定第幾個字元

舉例子,見下圖,

shell 特殊符号

上圖例子中,| 輸出結果,cut 分割出後面想要的結果。一般情況下,-c 和 -d 、-f 不同時使用。

(2)、sort 排序

-n 以數字排序 -r 反序 -t 分隔符 -kn1/-kn1,n2

shell 特殊符号

可以注意到,紅色框框裡面的内容是按字母順序排列的,這個就是 sort 作用的結果。sort 後面不加任何選項,則從首字元向後,依次按ASCII碼值進行比較,最後将他們按升序輸出。

關于ASCII碼,百度百科的解釋如下:

shell 特殊符号
shell 特殊符号
shell 特殊符号
shell 特殊符号

接着往下操作,見下圖,

shell 特殊符号

回車之後,進入下圖,

shell 特殊符号

随機輸入上圖紅色框框的内容,儲存後退出。使用 sort 檢視檔案 1.txt ,見下圖,

shell 特殊符号

可以看到上圖的排列順序是,先特殊符号,再數字,然後再字母,包括 * 号。以上就是 ASCII 碼的排列順序。

-n 選項是以數字排序,前面的特殊符号和字母,都預設為 0 。見下圖,

shell 特殊符号

-r 選項是反序的意思,見下圖,

shell 特殊符号

-t 後面跟分隔符,-kn1/-kn1,n2 ,這些用的比較少,了解即可。

(3)、wc

-l 統計行數 -m 統計字元數 -w 統計詞

舉個例子,見下圖,

shell 特殊符号

進入 2.txt 檔案,編輯輸入下圖紅色框框的内容,

shell 特殊符号

儲存後退出。接着統計 2.txt 的字元數,見下圖,

shell 特殊符号

可以看到,2.txt 的字元數是 8 ,為什麼會是 8 呢?cat -A 之前說過,它可以檢視 2.txt 檔案裡的所有内容,包括隐藏的。然後,就看到了每一行末尾的 $ ,表示的是換行符。是以,wc -m 2.txt 的結果是 8 。

接着對 -w 進行操作,見下圖,

shell 特殊符号

2.txt 裡的内容有兩行,是以顯示的結果是 2 。再次進入 2.txt 編輯檔案内容,見下圖,

shell 特殊符号

補充完上圖内容後,儲存并退出。再次檢視統計詞,見下圖,

shell 特殊符号

-w 是以空白字元作為分隔符的,是以結果顯示為 3 。

(4)、uniq 去重複,-c 統計行數

輸入指令 vi 2.txt ,回車,見下圖,

shell 特殊符号

增加上圖紅色框框的内容,儲存并退出。接着往下操作,

shell 特殊符号

發現 uniq 指令對 2.txt 的内容沒有任何影響,再次進入檔案 2.txt ,編輯内容如下,

shell 特殊符号

将最後的1和2互換位置,然後儲存退出。接着使用指令 uniq 2.txt 檢視,見下圖,

shell 特殊符号

這時候,就會看到去重複了。這是有條件的去重複,必須兩個同樣的字元在前後位置,才能去重複。

一般情況下,uniq 和 sort 是一起使用的,見下圖,

shell 特殊符号

先排序,後去重複。這樣子使用指令之後,就看不到重複的數值了。還可以使用 -c 選項來統計重複的次數,每一排前面的數字就是重複的次數。

(5)、tee

和 > 類似,重定向的同時還在螢幕顯示,|tee -a 有追加作用

shell 特殊符号

從上圖可以看出 |tee 的一個作用就是重定向,還有一個作用是把檔案内容列印到螢幕上。

-a 選項有追加的作用,見下圖,

shell 特殊符号

再追加一次,再檢視檔案,見下圖,

shell 特殊符号

(6)、tr 指令

tr 替換字元,tr 'a' 'b',大小寫替換 tr '[a-z]' '[A-Z]'

具體操作,詳見下圖,

shell 特殊符号

(7)、split 指令

split 切割,-b 大小(預設機關位元組),-l 行數

首先來建立一個大檔案,輸入指令 find /etc/ -type f -name "conf" ,回車,見下圖,

shell 特殊符号

該指令結果内容太多,不一一截圖,接着操作如下,

shell 特殊符号

後面這些 4.0 KB的檔案也很多,不一一截圖了。接着用指令 du -sh ,回車,見下圖,

shell 特殊符号

内容也非常多,不一一截圖。1000 機關是 b 。因為前面切割的機關是 1000 ,接着往 100 切割,見下圖,

shell 特殊符号

切割成 100 之後,檔案就更多了,圖檔内容截圖不全,可以注意到這些小檔案的命名都是有按字母排序的。檔案太多,全部删除掉,接着往下操作,

shell 特殊符号

以上就是 split 的用法,可以按大小切割,也可以按行數切割。