Linux常用管道命令
阿新 • • 發佈:2018-12-24
1.cut,將一行內的資料進行分解
cut -d '分隔符' -f fields
cut -c 字元範圍
-f 取出第幾段的意思 ,從1開始
例:echo $PATH | cut -d ':' -f 3,5
export | cut -c 12-
2.grep 分析一行資料
grep [-acinv] [--color=auto] 'string' filename
-c 計算找到string的次數
-i 忽略大小寫
-n 順便輸出行號
-v 反向選擇,輸出沒有string的行
--color=auto 將找到的string加上顏色顯示
3.sort,排序
sort [options] [file or stdin]
-f:忽略大小寫
-b:忽略最前面的空格
-M:一月份的名字來排序
-n:使用數字排序(預設是文字型別 )
-r :反向排序
-u:uniq,相同的資料輸出一行
-t:分隔符,預設tab
-k:以哪個區間來排序
例:
cat /etc/passwd | sort(預設以第一個排序,並且是文字型別)
passwd以:分割,以第三個欄位排序,並且以數字進行排序
cat /etc/passwd | sort -t ':' -k 3 -n
4.uniq,去重
uniq [-ic]
-i:忽略大小寫
-c:計數
5.wc,計數
-l 有多少行
-w 有多少字
-m 有多少字元
6.tee,雙重重定向,將資料傳送到檔案和螢幕
tee [-a] file
-a 已累累加的方式新增到檔案
7.tr,輸出一段資訊中的文字,或者進行文字資訊的替換
tr [-ds] SET1....
-d:刪除資訊中的SET1這個字串
-s:替換掉重複的字元
小寫替換成大寫:tr '[a-z]' '[A-Z]'
8.col,經常用於將man page轉化成純文字形式,方便查閱
-x:將tab鍵替換成等價的空格鍵
例: man col | col -x | cat -A | more
9.join, 處理兩個檔案之間的內容,將兩個檔案中有相同資料的哪一行加在一起
join [-ti12] file1 file2
-t:join預設以空格符分割資料,並且對比第一個欄位
-i:忽略大小寫
-1:表示第一個檔案要用哪個欄位進行處理
-2:同-1
例:將/etc/passwd /etc/shadow 按照第一個欄位進行整合
join -t ':' /etc/passwdd /etc/shadow
/etc/passwd按照第四個欄位,/etc/group按照第三個欄位進行整合
join -t ':' -1 4 /etc/passwd -2 3 /etc/group
join 要求處理的檔案事先經過排序處理
file為-表示標準輸入
10.paste 將檔案的同一行貼上在一起。中間tab分開
-d : 分隔符
paste [-d] file1 file2 file3...
11.expend ,將tab轉換成空格
expand [-t] file
-t:後面接數字,表示將tab轉化成多少空格
grep '^MANPATH' /etc/man.config | head -3 | expand -t 6 - | cat -A
unexpand 將空格轉化成tab
12.split ,講一個大檔案依據檔案大小或者行數切割成小檔案
split [-bl] file PREFIX
-b:後面接欲切割成的檔案大小
-l:以行數進行切割
PREFIX:可作為切割檔案的前導文字,檔名
例:將檔案分割成300k大小,並且分割成的檔名的開頭都是termcap
split -b 300k /etc/termcap termcap
將檔案合併成一個檔案:cat termcap* >> termback
將ls -al 的輸出每10個一行輸出到檔案中:ls -al | split -l 10 - lsroot
13.xargs,產生某個命令的引數,不支援管道的命令,可以通過xargs提供命令引用standard input