1. 程式人生 > 實用技巧 >Linux之管道命令

Linux之管道命令

溫馨提示:

①、以高亮的形式顯示
語法: grep a a.txt --color
在這裡插入圖片描述

管道命令

1、界定符號“ | ”
含義:命令1的結果是命令2執行的引數
注意:管道命令僅會處理標準輸出,對於標準錯誤會予以忽略;管道命令必須要能夠接受來自前一個命令的資料成為標準輸入繼續處理才行
語法:命令1 | 命令2 |命令3 | 命令4,(命令2之後的所有命令必須能夠接受標準輸入的資料)

案例:計算當前目錄下檔案的個數
語法:ls -1 | wc -l
在這裡插入圖片描述

2、選取命令
①、過濾(以行為單位,若含有需要的資料則取出該行
語法:grep [-cinv] [- -color=auto] [-AB]數字 關鍵詞 檔案位置

,就是說在文中中過濾出關鍵字的資訊
“ -c ”表示(count)計算查詢字元的次數
“ -i ”表示全部顯示,不區分大小寫
“ -n ”表示顯示行號
“ -v ”表示反向過濾,既不顯示

“ -A ”表示過濾的同時過濾後面的n行
“ -B ”表示過濾的同時過濾前面的n行
“ --color ”表示將找到的關鍵部分加上顏色顯示

例如:搜尋當前目錄下檔名含義a的所有檔案
在這裡插入圖片描述
②、將檔案按照某一部分來分割(以行為單位,去除某部分我們想要的資訊
語法:cut [-d] 分隔符 [-f] 檢視的部分 檔名
案例:檢視/etc/passwd檔案下的第一部分的內容
語法:cut -d: -f1 /etc/passwd

在這裡插入圖片描述

3、雙向重定向
語法:tee [-a] file
解釋:可以讓標準輸出轉存一份到檔案記憶體並將同樣的資料繼續送到螢幕去處理,這樣除了可以讓我們同時分析一份資料並記錄下來之外,還可以作為處理一份資料的中間快取記錄只用。
“ -a ”以累加的形式將資料加入file中

4、排序
①、sort [-nru] [-t]分隔符 [-k]數字,(預設從小到大)
“ -n ”表示以數字的形式排序
“ -r ”表示從大到小排序
“ -t ”表示指明分隔符
“ -k ”表示指定第n部分
“ -u ”(unique)表示刪除重複的行
cut -d ‘:’ -f 3 /etc/passwd | sort -n

案例:顯示 /etc/passwd 檔案下的第三部分數字的資訊並以從小到底的順序排序

語法: cut -d ‘:’ -f 3 /etc/passwd | sort -n

在這裡插入圖片描述
②、避免重複顯示
語法:uniq [-ic]
“ -c ”表示(count)計算查詢字元的次數
“ -i ”表示全部顯示,不區分大小寫

③、計算出整體的資訊
語法:wc [-lwm]
“ -l ”表示顯示行數
“ -w ”(world)表示顯示單詞數
“ -m ”表示顯示字元數,計算的時候會多出兩個字元,因為存在換行“\n”為兩個字元

5、字元轉換命令

①、刪除一段資訊當中的文字,或者進行文字資訊的替換
語法:tr [-ds] SET1…
“ -d ”(delete)表示刪除資訊當中的SET1這個字元
“ -s ”表示替換掉重複的字元

案例 1:替換掉當前目錄下的a
語法: last | tr ‘linux123’ 'LINUX123’
在這裡插入圖片描述
案例二:刪除a.txt檔案下的數字“ 2 ”
語法:cat a.txt | tr -d '2’
在這裡插入圖片描述

②、字元轉換
語法:col [-xb]
“ -x ”表示將tab鍵轉換成對等的空格鍵
案例:顯示出所有的特殊按鍵,最後以col將tab轉成空白
語法:cat -A /etc/man_db.conf | col -x | cat -A | more

③、語法:join [-ti12] file1 file2(忽略相同的部分)
“ -t ”表示(預設以空格字元分割資料),並且對比【第一個欄位】的資料
“ -i ”表示忽略大小寫
“ -1 ”表示【第一個檔案要用哪個欄位來分析】

④、貼上(將檔案合併)
語法:paste file1 file2

⑤、字元轉換(將tab轉換成空格)
語法:expend [-t] file

6、劃分命令
語法:split [-bl] file PREFIX
“ -b ”後面可接劃分檔案的大小,客家單位(b、k、m)
“ -l ”表示以行數來進行劃分
“ PREFIX ”表示字首字元
在這裡插入圖片描述

7、引數代換(argument)
含義:在產生某個命令的引數,一般使用在不能使用管道的時候(使用管道無顯示)
語法:xargs [-0epn] command

在這裡插入圖片描述
可以看到,當我們使用“ | ”的時候,與不使用的時候無差異,這時如果要檢視效果可以使用xargs