010 Linux 文本統計與去重 (wc 和 uniq)


file

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 ...]

  1. -c # 統計字節數
  2. -l # 統計行數
  3. -w # 統計單詞數
  4. -m # 統計字符數

3 wc命令示例

c、l、w、m 用例

read.text 內容如下:

!
hello china!
hello!
china!

file

配合 grep 統計命中的目標行數用例

# grep 正則匹配統計命中的目標行數,wc 命令在后面
grep -E  "(14:41(.)+internal-internal spend)"  002.info.log | wc -l

4 uniq 的常用參數以及配合 sor t應用示例

uniq 常用參數

uniq 可檢查文本文件中重復出現的行,一般與 sort 命令結合使用。

  1. -c或--count 在每列旁邊顯示該行重復出現的次數;
  2. -d或--repeated 僅顯示重復出現的行;
  3. -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 請關注!


免責聲明!

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



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