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
---------------------
版權聲明:本文為CSDN博主「u010660276」的原創文章,遵循CC 4.0 by-sa版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/u010660276/article/details/52823898


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM