wc 命令一般是作為組合命令的一員與其他命令一同起到統計的作用。而一般情況下使用wc -l 命令較多。
uniq 可檢查文字檔案中重複出現的行,一般與 sort 命令結合使用。一起組合搭配使用完成統計、排序、去重。
1 wc 常用組合命令
- ls | wc -l # 統計當前資料夾下,檔案數量;
- ls *.txt | wc -l # 統計當前資料夾下、第一層目錄下所有的txt檔案數量;
- find . -maxdepth 1 -name '*.txt' | wc -l # 統計當前資料夾、第一層目錄下所有的txt檔案數量;
2 wc 基本引數和格式
命令格式: wc [-clmw] [file ...]
- -c # 統計位元組數
- -l # 統計行數
- -w # 統計單詞數
- -m # 統計字元數
3 wc命令示例
c、l、w、m 用例
read.text 內容如下:
!
hello china!
hello!
china!
配合 grep 統計命中的目標行數用例
# grep 正則匹配統計命中的目標行數,wc 命令在後面
grep -E "(14:41(.)+internal-internal spend)" 002.info.log | wc -l
4 uniq 的常用引數以及配合 sor t應用示例
uniq 常用引數
uniq 可檢查文字檔案中重複出現的行,一般與 sort 命令結合使用。
- -c或--count 在每列旁邊顯示該行重複出現的次數;
- -d或--repeated 僅顯示重複出現的行;
- -u或--unique 僅顯示出一次的行;
info.log 內容如下:
111,222,333
111,222,333
333,444,555
xxx,yyy,zzz
cat info.log |sort -r
xxx,yyy,zzz
333,444,555
111,222,333
111,222,333
cat info.log |sort|uniq
111,222,333
333,444,555
xxx,yyy,zzz
cat info.log |sort -r|uniq -u
xxx,yyy,zzz
333,444,555
cat info.log |sort -r|uniq -d
111,222,333
cat info.log |sort -r|uniq -c
1 xxx,yyy,zzz
1 333,444,555
2 111,222,333
5 案例一(文字統計)
有一個 b. txt 文字(內容如下),要求將所有域名擷取出來,並統計重複域名出現的次數。
http://www.baidu.com/index.html
https://www.atguigu.com/index.html
http://www.sina.com.cn/1024.html
https://www.atguigu.com/2048.html
http://www.sina.com.cn/4096.html
https://www.atguigu.com/8192.html
命令和結果
cat b.txt |cut -d "/" -f3 |sort| uniq -c|sort -nr
3 www.atguigu.com
2 www.sina.com.cn
1 www. baidu.com
# cut -d "/" -f3 用"/"作為分隔符,擷取第個3欄位
# sort 第一次排序
# uniq -c 顯示該行重複次數
# sort -nr 按照數值從大到小排序
6 案例二( ip 連線數統計並排序)
統計當前伺服器正在連線的 ip 地址,並按連線次數排序;
netstat -an I grep ESTABLISHED | awk '{print $5}' | cut -d ":" -f1 | sort -n | uniq -c | sort -nr
7 小結
wc 用來統計指定檔案中的位元組數、行數、單詞數、字元數;
uniq 可檢查文字檔案中重複出現的行列。
可對標準輸入,配合 grep、sort、find 等命令完成統計、排序、去重。
「不甩鍋的碼農」原創,轉載請註明來源,未經授權禁止商業用途!同名 GZH 請關注!