首頁 > 系統教程 > Linux > 主體

Linux之uniq 指令範例

WBOY
發布: 2024-07-18 16:17:06
原創
567 人瀏覽過

 

請注意,除非重複行是相鄰的,否則 uniq 不會刪除它們。因此,你可能需要先對它們進行排序,或將排序命令與 uniq 組合以獲得結果。讓我給你看一些例子。

首先,讓我們建立一個帶有一些重複行的檔案:

vi ostechnix.txt
welcome to ostechnix
welcome to ostechnix
Linus is the creator of Linux.
Linux is secure by default
Linus is the creator of Linux.
Top 500 super computers are powered by Linux
登入後複製

正如你在上面的文件中看到的,我們有一些重複的行(第一行和第二行,第三行和第五行是重複的)。

1、 使用 uniq 指令刪除檔案中的連續重複行

如果你在不使用任何參數的情況下使用 uniq 指令,它將刪除所有連續的重複行,只顯示唯一的行。

uniq ostechnix.txt
登入後複製

範例輸出:

Linux之uniq 命令示例

如你所見, uniq 指令刪除了給定檔案中的所有連續重複行。你可能也注意到,上面的輸出仍然有第二行和第四行重複了。這是因為 uniq 指令只有在相鄰的情況下才會刪除重複的行,當然,我們也可以刪除非連續的重複行。請看下面的第二個例子。

2、 刪除所有重複的行
sort ostechnix.txt | uniq
登入後複製

範例輸出:

Linux之uniq 命令示例

看到了嗎?沒有重複的行。換句話說,上面的指令將顯示在 ostechnix.txt 中只出現一次的行。我們使用 sort 指令與 uniq 指令結合,因為,就像我提到的,除非重複行是相鄰的,否則 uniq 不會刪除它們。

3、 只顯示檔案中唯一的一行

為了只顯示檔案中唯一的一行,可以這樣做:

sort ostechnix.txt | uniq -u
登入後複製

範例輸出:

 

Linux is secure by default
Top 500 super computers are powered by Linux
登入後複製

如你所見,在給定的文件中只有兩行是唯一的。

4、 只顯示重複的行

同樣的,我們也可以顯示文件中重複的行,就像下面這樣:

sort ostechnix.txt | uniq -d
登入後複製

範例輸出:

Linus is the creator of Linux.
welcome to ostechnix
登入後複製

這兩行在 ostechnix.txt 檔案中是重複的行。請注意 -d(小寫 d) 將會只列印重複的行,每組顯示一個。列印所有重複的行,使用 -D(大寫 D),如下所示:

sort ostechnix.txt | uniq -D
登入後複製

在下面的截圖中看兩個選項的差異:

Linux之uniq 命令示例

5、 顯示檔案中每一行的出現次數

由於某種原因,你可能想要檢查給定檔案中每一行重複出現的次數。要做到這一點,請使用 -c 選項,如下所示:

sort ostechnix.txt | uniq -c
登入後複製

範例輸出:

Linus is the creator of Linux.
 Linux is secure by default
 Top 500 super computers are powered by Linux
 welcome to ostechnix
登入後複製

我們也可以按照每一行的出現次數進行排序,然後顯示,如下所示:

sort ostechnix.txt | uniq -c | sort -nr
登入後複製

範例輸出:

welcome to ostechnix
 Linus is the creator of Linux.
 Top 500 super computers are powered by Linux
 Linux is secure by default
登入後複製
6、 將比較限制為 N 個字元

我們可以使用 -w 選項來限製文件中特定數量字元的比較。例如,讓我們比較文件中的前四個字符,並顯示重複行,如下所示:

uniq -d -w 4 ostechnix.txt
登入後複製
7、 忽略比較指定的 N 個字元

像對檔案中行的前 N ​​個字元進行限制比較一樣,我們也可以使用 -s 選項來忽略比較前 N 個字元。

下面的命令將忽略在文件中每行的前四個字元進行比較:

uniq -d -s 4 ostechnix.txt
登入後複製

為了忽略比較前 N 個字段(LCTT 譯註:即前幾列)而不是字符,在上面的命令中使用 -f 選項。

欲了解更多詳情,請參考幫助部分:

uniq --help
登入後複製

也可以使用 man 指令來查看:

man uniq
登入後複製

今天就到這裡!我希望你現在對 uniq 命令及其目的有一個基本的了解。如果你發現我們的指南有用,請在你的社交網路上分享,並繼續支持我們。更多好東西要來了,請繼續關注!

乾杯!

以上是Linux之uniq 指令範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!