管道命令大全
文章目錄
- 管道命令
- 1.cut
- 2 sort
- 3 wc
- 4 uniq
- 5 tee
- 6 tr
- 7 split
- 8 awk
- 9 sed
管道命令
1.cut
cut 根據(jù)條件 提前對(duì)應(yīng)內(nèi)容cut 參數(shù) 文件 獲取指定文件中指定內(nèi)容cut -c n 獲取第n個(gè)字符的列 和head配合使用效果更好例 獲取1.txt文件中前三行的第六個(gè)字符列head -3 1.txt |cut -c 6-d 分割符 -f a 分割以后顯示第a段的內(nèi)容-f a- 分割以后顯示第a段到行尾的內(nèi)容-f a,b 分割以后顯示第a段和第b段的內(nèi)容-f a-b 分割以后顯示第a段到第b段的內(nèi)容例截取1.txt文件中前3行以空格進(jìn)行分割的第一段和第二段內(nèi)容 head -3 1.txt|cut -b ' ' -f 1,2小結(jié):
cut 就是根據(jù)條件提取你要的內(nèi)容
-c 獲取字符列內(nèi)容
-d 分割文件
-f分割后使用顯示指定內(nèi)容
2 sort
sort不加參數(shù)就是字典序 按照列排的 先排出第一列 然后在排出第二列如此循環(huán)。比如 10 ,11 ,1 ,6 ,9 它會(huì)排成 1 ,10,11,6,9一般用于對(duì)字符串進(jìn)行排序如果我們要對(duì)數(shù)值進(jìn)行排序就需要用到 -n這個(gè)參數(shù)了sort -n 按照數(shù)值大小排序 sort -n -r 倒序sort -u 去除重復(fù)內(nèi)容我們還可以指定列排序 一般用于成績排序(sort -t ‘分隔符’ 用來分割內(nèi)容的)以下是a.txt的內(nèi)容姓名 語 數(shù) 英zhangsan 68 99 26lisiguan 98 66 96wangwuan 38 33 86例 獲取語文成績的排序sort -t ' ' - k2nf a.txt小結(jié) :
sort就是針對(duì)文本文件的內(nèi)容,以行為單位來排序
sort -n 按照數(shù)值大小排序
sort -n -r 倒序
sort -u 去除重復(fù)內(nèi)容
3 wc
wc 顯示指定文件 字節(jié)數(shù), 單詞數(shù), 行數(shù) 信息 wc -c 顯示字節(jié)數(shù)wc -w 顯示單詞數(shù)wc -l 顯示行數(shù)wc 還可以組合使用 例:查看/etc目錄下有多少子內(nèi)容 ls /etc |wc -w4 uniq
uniq 命令用于檢查及刪除文本文件中重復(fù)出現(xiàn)的行,uniq要與 sort 命令結(jié)合使用。uniq -c 統(tǒng)計(jì)每行內(nèi)容出現(xiàn)的次數(shù)5 tee
tee 可以把命令結(jié)果 放到多個(gè)文件中例 把a(bǔ).txt的去重結(jié)果 放到 a.txt b.txt c.txt文件中cat a.txt |sort|uniq -c | tee a.txt b.txt c.txt小結(jié) :
通過 tee 可以將命令結(jié)果 通過管道 輸出到 多個(gè)文件中
6 tr
tr 用于替換 刪除替換例 把a(bǔ).txt 文件中的小寫字母替換成大寫字母cat a.txt |tr ‘[a-z]’ '[A-Z]'刪除例 把a(bǔ).txt文件中的數(shù)字刪除 cat a.txt|tr -d ‘[0-9]’7 split
split 將大文件切成多個(gè)小文件按10字節(jié)切分 (系統(tǒng)會(huì)給小文件自動(dòng)命名 規(guī)則是xaa xab ... xba xbb ...)split -b 10 k 文件名 (得到若干份10kb的小文件)按行數(shù)切分 (命名規(guī)則同上)split -l 10 文件名 (得到若干份10行的小文件)8 awk
awk實(shí)現(xiàn) 模糊查詢,按需提取字段,還可以進(jìn)行 判斷和簡單的運(yùn)算等.awk ‘/zhangsan|lisi/’ score.txt 查詢a.txt中zhangsan和lisi的成績(操作a.txt文件 根據(jù)逗號(hào)分割 打印第一段第二段 第三段)awk -F ‘ ,’ {print $1 $2 $3}’ a.txt (操作1.txt文件, 根據(jù) 逗號(hào) 分割,打印 第一段 第二段 第三段 內(nèi)容,內(nèi)容中間用===隔開)awk -F ‘’ ‘{OFS=“===”}{print $1,$2,$3}’ 1.txtif語句 查詢及格的學(xué)生信息如果及格,就顯示 $1, $4awk -F ',' '{if($4>60) print $1, $4 }' score.txt顯示 姓名, $4, 是否及格awk -F ',' '{if($4>60) print $1, $4, "及格"; else print $1, $4, "不及格"}' score.txt| -F ‘,’ | 使用指定字符分割 |
| $ + 數(shù)字 | 獲取第幾段的內(nèi)容 |
| $0 | 獲取當(dāng)前行內(nèi)容 |
| NF | 表示當(dāng)前行共有多少個(gè)字段 |
| $NF | 代表 最后一個(gè)字段 |
| $(NF-1) | 代表 倒數(shù)第二個(gè)字段 |
| NR | 代表 處理的是第幾行 |
| if($0 ~ “aa”) print $0 | 如果這一行包含 “aa”, 就打印這一行內(nèi)容 |
| if($1 ~ “aa”) print $0 | 如果第一段 包含 “aa”, 就打印這一行內(nèi)容 |
| if($1 == “l(fā)isi”) print $0 | 如果第一段 等于 “l(fā)isi”, 就打印這一行內(nèi)容 |
| toupper() | 字符 轉(zhuǎn)成 大寫 |
| tolower() | 字符 轉(zhuǎn)成小寫 |
| length() | 返回 字符長度 |
求平均分
awk -F ‘,’ ‘BEGIN{}{total=total+$4}END{print total, NR, (total/NR)}’ score.txt
9 sed
| p | 打印 |
| $ | 代表 最后一行 |
| -n | 僅顯示處理后的結(jié)果 |
| -e | 根據(jù)表達(dá)式 進(jìn)行處理 |
| d | 刪除指定內(nèi)容 |
| i | 目標(biāo)前面插入內(nèi)容 |
| a | 目標(biāo)前面插入內(nèi)容 |
| s/老名稱/新名稱/ | 替換 |
| 2c 新字符串 | 使用新字符串 替換 選中的行 |
| -i | 替換原有文件內(nèi)容 |
總結(jié)
- 上一篇: linux不识别sda,linux –
- 下一篇: C#利用Picturebox控件显示图片