1. 程式人生 > >Linux常用管道命令

Linux常用管道命令

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