Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 文本去重三步法:sort + vim 清洗 + uniq

編輯:Linux 系統常見問題解答

快速去除文本文件中的重複行、空白字符、控制字符,三條命令搞定。

步驟

  1. 排序並保存
    cat 1.txt | sort > 2.txt
  2. Vim 批量清洗不可见字符
    vim 2.txt 進入後依次執行:
    :%s/ //g # 刪除所有空格
    :%s/^I//g # 刪除 Tab(^I 為 Ctrl+V 後按 Tab)
    :%s/^M//g # 刪除 Windows 換行符 ^M(^M 為 Ctrl+V 後按 Enter)
  3. 去重輸出
    cat 2.txt | uniq > 3.txt

原理

  • sort 將相同行聚合相鄰,uniq 僅刪除相鄰重複行,故必須先排序。
  • Vim 正則 ^I、^M 需通過組合鍵輸入字面控制字符,不可直接打字母。

一鍵管道版(無需 Vim)

cat 1.txt | sort | tr -d ' \t\r' | uniq > 3.txt

tr -d ' \t\r' 同步刪除空格、Tab、回車符,更適合腳本自動化。

Copyright © Windows教程網 All Rights Reserved