Linux 命令 `uniq`:去重利器

Linux 命令 uniq:去重利器

在 Linux 系統中,處理文本數據是日常任務中不可或缺的一部分。當我們面對大量重復的數據行時,如何高效地去除這些重復項成為了一個值得探討的話題。這時,uniq 命令就派上了用場。本文將介紹 uniq 命令的基本用法、選項以及一些實用技巧。

uniq 命令簡介

uniq 命令用于從排序好的文本文件中去除重復的行,只顯示唯一的行。注意,uniq 命令通常與 sort 命令結合使用,因為 uniq 需要輸入的數據已經預先排序過。

基本用法

uniq [options] [file ...]
  • [options]:命令選項,用于指定不同的行為。
  • [file ...]:要處理的文件列表。如果未指定文件,uniq 將從標準輸入讀取數據。

常用選項

-c 或 --count

在每行前加上該行在文件中出現的次數。

-d 或 --repeated

僅顯示重復的行。

-D 或 --all-repeated[=delim]

顯示所有重復的行,并在每組重復行之間插入指定的分隔符(默認為空行)。

-f n 或 --skip-fields=n

忽略每行前 n 個字段的比較。字段之間由制表符分隔。

-i 或 --ignore-case

比較時不區分大小寫。

-s n 或 --skip-chars=n

忽略每行前 n 個字符的比較。

-u 或 --unique

僅顯示唯一的行。

-z, --zero-terminated

以空字符(null)而不是換行符來結束每行。這在處理包含換行符的字段時特別有用。

示例

示例 1:去除重復行

假設我們有一個名為 numbers.txt 的文件,內容如下:

1
2
2
3
4
4
4
5

要去除重復的行,我們可以這樣做:

sort numbers.txt | uniq

輸出:

1
2
3
4
5

示例 2:顯示重復行的次數

使用 -c 選項,我們可以在每行前顯示其出現的次數:

sort numbers.txt | uniq -c

輸出:

1 1
2 2
1 3
3 4
1 5

示例 3:僅顯示重復行

使用 -d 選項,我們可以僅顯示重復的行:

sort numbers.txt | uniq -d

輸出:

2
4

注意事項

  • uniq 命令僅對排序后的數據有效。如果輸入數據未排序,則結果可能不正確。
  • uniq 命令是基于整行進行比較的。如果只想基于行的某個部分進行比較,可以使用其他工具(如 awksedcut)進行預處理。

總結

uniq 命令是一個簡單而強大的工具,用于從排序好的文本文件中去除重復的行。通過結合不同的選項,我們可以實現各種復雜的文本處理任務。希望本文能幫助你更好地理解和使用 uniq 命令。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23724.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23724.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23724.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

走進AI大模型的瘦身房,看看如何把大模型塞進我們的手機里

人工智能的廣泛應用已經改變了我們的生活方式。從智能助手到自動駕駛汽車,AI技術正變得越來越普及。然而,這些AI大模型往往參數眾多,體積龐大,需要依賴龐大的網絡計算資源,如何讓大模型能在個人電腦,甚至手…

【docker】 /bin/sh: ./mvnw: No such file or directory解決方案.dockerignore被忽略

報錯如下:解決方案很簡單,但是容易讓大家忽視的問題。 > CACHED [stage-1 2/4] WORKDIR /work/ …

【Android面試八股文】使用equals和==進行比較的區別?

使用equals和==進行比較的區別 這道題想考察什么 ? 在開發中當需要對引用類型和基本數據類型比較時應該怎么做,為什么有區別。 考察的知識點 equals 的實現以及棧和堆的內存管理 考生應該如何回答 在 Java 中,equals() 方法和 == 運算符用于比較對象之間的相等性,但它…

數據賦能(111)——體系:監控數據采集——概述、關注焦點

概述 監控數據采集是指對數據采集過程進行實時的監視和控制,以確保數據的準確性、完整性和可用性。監控數據采集旨在及時發現并解決數據采集過程中出現的問題,保證數據的穩定性和可靠性。 監控數據采集的主要目的是確保數據的準確性、完整性和可用性。…

要改進單例模式的實現以確保線程安全并優化性能,有幾種常見的方法

要改進單例模式的實現以確保線程安全并優化性能,有幾種常見的方法。以下是幾種改進 ThreadUtil 單例實現的方法: ### 1. 懶漢式(線程安全版) 使用同步機制來確保線程安全,但只在第一次創建實例時同步,這樣…

正則匹配規則

正則表達式&#xff1a;查找某字符串開始和某字符串結束的字符串 a.*?b 查找以a開始&#xff0c;并且以b結束的字符串 例如&#xff1a; 字符串為&#xff1a;上海12345abcd.opi,.<>北京 patten &#xff1a;上海.*?北京 結果&#xff1a;上海12345abcd.opi,.<>…

用互斥鎖解決緩存擊穿

我先說一下正常的業務流程&#xff1a;需要查詢店鋪數據&#xff0c;我們會先從redis中查詢&#xff0c;判斷是否能命中&#xff0c;若命中說明redis中有需要的數據就直接返回&#xff1b;沒有命中就需要去mysql數據庫查詢&#xff0c;在數據庫中查到了就返回數據并把該數據存入…

Unity DOTS技術(三)JobSystem+Burst+批處理

文章目錄 一.傳統方式二.使用JobSystemBurst方式三.批處理 在之前的例子中我們都中用的單線程與傳統的編譯器,下面我們試著使用JobSystem與打找Burst編譯器來對比一下性能的差異. 一.傳統方式 1.首先用傳統方式創建10000個方塊并讓基每幀旋轉 2.我們可以看到他的幀率是40 …

RBAC 模型梳理

1. RBAC 模型是什么 RBAC&#xff08;Role-Based Access Control&#xff09;即&#xff1a;基于角色的權限控制。通過角色關聯用戶&#xff0c;角色關聯權限的方式間接賦予用戶權限。 RBAC 模型由 4 個基礎模型組成&#xff1a; 基本模型 RBAC0&#xff08;Core RBAC&#x…

面向AI應用開發實戰分享 - 基礎篇

“前端轉AI&#xff0c;第一講來了” 引言 如果你是一名前端開發&#xff0c;同時又對AI開發很感興趣&#xff0c;那么恭喜你&#xff0c;機會來了。 如果不是也沒關系&#xff0c;同樣能幫大家了解AI應用的開發思路。 本文將帶大家從面向AI開發的基礎知識開始&#xff0c;再…

Vue3:ElementPlus分裝動態列表查詢表單和彈窗動態表單

文章目錄 概要表單組件封裝彈窗組件調用表單組件頁面列表調用查詢表單 表單組件封裝 組件代碼 <template><el-formref"ruleFormRef"class"elForm":inline"true":rules"rules":model"TableList"label-width"…

AlaSQL.js:用SQL解鎖JavaScript數據操作的魔法

簡介 先附上 github 地址 https://github.com/AlaSQL/alasql AlaSQL.js - JavaScript SQL database for browser and Node.js. Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or …

高德車道級安全預警再升級 10大場景全方位守護行車安全

今日起&#xff0c;2024年高考、端午節小長假相繼到來&#xff0c;正值新一波出行高峰到來&#xff0c;高德地圖車道級安全預警功能再次升級。升級后的車道級安全預警功能覆蓋了10大安全風險較高的行車場景&#xff0c;全方位、超視距地為用戶實時探測、預警行車風險&#xff0…

成都躍享未來教育咨詢有限公司,值得信賴!

在浩渺的教育咨詢市場中&#xff0c;成都躍享未來教育咨詢有限公司以其獨特的魅力和卓越的服務質量&#xff0c;成為了行業內的璀璨明星。作為一家致力于為學生提供全方位教育咨詢服務的公司&#xff0c;成都躍享未來教育咨詢有限公司始終堅持安全可靠的原則&#xff0c;為廣大…

樹莓派4B_OpenCv學習筆記4:測試攝像頭_imread加載顯示圖像_imwrite保存圖片

今日繼續學習樹莓派4B 4G&#xff1a;&#xff08;Raspberry Pi&#xff0c;簡稱RPi或RasPi&#xff09; 本人所用樹莓派4B 裝載的系統與版本如下: 版本可用命令 (lsb_release -a) 查詢: Opencv 版本是4.5.1&#xff1a; 今日對之前的測試CSI攝像頭函數進行一些理解說明&#x…

pytorch中的zero_grad()函數的含義和使用

optimizer.zero_grad() &#xff0c;用于將模型的參數梯度初始化為0。 #反向計算 loss.backward()#反向傳播計算梯度 optimizer.step()#更新參數&#xff0c;梯度被反向計算之后&#xff0c;調用函數進行所有參數更新 #在反向傳播計算時&#xff0c;梯度的計算是累加&#xff…

降噪是什么意思?視頻如何降噪?一文了解全部

在視頻制作的過程中&#xff0c;我們經常會遇到噪音問題&#xff0c;這些噪音可能來自拍攝環境、錄制設備或其他源頭。然而&#xff0c;對于初學者來說&#xff0c;降噪是什么意思&#xff0c;以及如何有效地在視頻中進行降噪可能是一些疑惑的問題。本文將深入解釋降噪的概念&a…

【算法】深入淺出爬山算法:原理、實現與應用

人不走空 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌賦&#xff1a;斯是陋室&#xff0c;惟吾德馨 目錄 &#x1f308;個人主頁&#xff1a;人不走空 &#x1f496;系列專欄&#xff1a;算法專題 ?詩詞歌…

echarts學習: 繪制雙y軸折線圖

前言 我們公司項目中的折線圖大都是雙y軸的&#xff0c;因為這些圖表往往需要同時展示水位和流量這兩種不同單位的數據&#xff0c;因此如何繪制雙y軸折線圖就是就是我所面臨的首要問題。 1.如何繪制雙y軸 將yAxis屬性的值設置為一個數組&#xff0c;并在數組中添加兩個axis對…

【LC刷題】DAY02:977 209 59

#【LC刷題】DAY02&#xff1a;977 209 59 文章目錄 977. 有序數組的平方 [link](https://leetcode.cn/problems/squares-of-a-sorted-array/description/)第一思路&#xff1a;直接排序優化&#xff1a;雙指針 209. 長度最小的子數組 [link](https://leetcode.cn/problems/min…