管道命令

1.什麼是管道命令?

管道命令能夠將一個命令的執行結果經過篩選,只保留我們需要的信息。
如,/etc目錄下會有大量的文件,如果使用ls很難找到需要的文件,因此可以使用管道命令將ls的結果進行一次篩選,只保留需要的信息。

2 管道 和 數據流重定向 的區別?

● 管道一詞非常生動形象,原始數據經過管道後,管道會將一部分不需要的信息過濾掉,只保留用戶所關注的信息。

● 數據流重定向是指定數據在哪裏顯示,默認情況下會在屏幕顯示,我們可以指定它輸出到文件。

3 管道命令有哪些

3.1 選取指定列:cut

cut爲剪切的意思,它能將一行行的數據按照指定的分隔符切成一列列,然後只顯示特定列的數據。
cut有兩種使用方式:

● 按照指定字符分隔
這個命令會按照特定的分隔符將數據切分,並只顯示第n列的數據。
cut -d ‘分隔符’ -f n

例子:顯示環境變量PATH第1和6列的數據
echo $PATH | cut -d ‘:’ -f 1,6

● 選擇特定範圍內的數據
cut -c 起始字符的下標-結束字符的下標
注意:cut中涉及的下標均從1開始。

3.2 關鍵詞搜索指定行:grep

3.2.1 grep命令介紹

grep用於進行關鍵詞查找,它會將文件中含有關鍵詞的那一整行輸出來。

grep [-cinv] [--color=auto] '關鍵詞' 待查找的文件名
-c:統計關鍵詞出現的次數
-i:關鍵詞忽略大小寫
-n:輸出行號
-v:反向選擇,即查找不包含該關鍵詞的行

3.2.2 grep的兩種使用方式

3.2.2.1 方式1:grep [-參數] ‘關鍵詞’ 文件

這種方式並沒有用到管道,只是從指定文件中將符合關鍵詞的行搜索出來。

3.2.2.2方式2:命令 | grep [-參數] ‘關鍵詞’

這種方式採用管道,將前一個命令的執行結果輸出給grep,並通過grep的關鍵詞搜索將符合條件的行搜索出來。

3.3 排序:sort

3.3.1 sort命令介紹

sort命令能夠將指定文件 或 前一個命令的結果數據 按照指定字段進行排序。

sort [-參數] 文件
-t:指定分隔符
-k:選取分隔後的第幾個字段進行排序
-f:排序時忽略選取字段的大小寫
-b:去除選取字段前的空格
-M:將選取的字段按照月份來排序(前提是選取字段就是月份)
-n:將選取字段按照數據來排序(前提是選取字段就是數字)
-r:反向排序
-u:去重。若選取字段有重複,則去掉重複。

3.3.2 sort兩種使用方式

和grep一樣,sort也有兩種使用方式。

3.3.2.1 方式1:sort [-參數] 文件

將文件中的數據按照指定字段排序。

3.3.2.2 方式2:命令 | sort [-參數]

使用管道,將前一個命令執行的結果按照指定字段進行排序。

3.4 去除重複行:uniq

3.4.1 uniq命令介紹

uniq命令只能用於管道,它能夠去除前一個命令執行的結果中完全一樣的行。

uniq [-參數]
-i:忽略大小寫
-c:進行重複行的統計

3.4.2 uniq使用方式

該命令只能用於管道,如統計當前系統所有用戶的登錄次數:
last | cut -d ’ ’ -f 1 | uniq -c

3.5 統計字數、行數、字符數:wc

3.5.1 wc命令介紹

wc [-參數]
-l:列出行數
-w:列出字數
-m:列出字符數

3.5.2 wc使用方法

wc只能通過管道使用:命令 | wc [-參數]

3.6 雙向重定向:tee

3.6.1 tee命令介紹

tee能夠同時將命令執行的結果輸出到指定的文件和屏幕。

tee [-a] 文件
-a:以追加的形式寫入文件

3.6.2 tee使用方式

tee只能和管道結合使用,如將last中的信息輸出指文件並顯示在屏幕上:
last | tee -a lastfile | cut -d ’ ’ f 1
last的所有信息將會被寫入文件lastfile中,然後數據流將會輸出到屏幕上,我們可以在輸出前再添加一條管道,只輸出數據的第一個字段。

3.7 連接兩個文件:join

3.7.1 join命令介紹

這個命令與管道無關。
它相當於數據庫中的join連接,將兩張表中指定字段,且字段相同的行連接起來。在這裏,它能夠將兩個文件中指定字段的相同字段連接起來,併成一行。

3.7.2 join命令的用法

join [-參數] 文件1 文件2
-t:兩個文件的字段分隔符
-1:第一個文件的字段
-2:第二個文件的字段
-i:忽略選取字段的大小寫

3.8 切割文件:split

3.8.1 命令介紹

該命令能將一個大文件切分成若干個小文件。

3.8.2 命令用法

split [-參數] 大文件 小文件名字前綴
-b:指定小文件的大小,需要加上單位:b、k、m
-l:指定每個小文件中的行數。
大文件會被切分成若干個小文件,且小文件的名字爲:小文件名字前綴+aa、小文件名字前綴+ab、小文件名字前綴+ac
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章