基本文字處理 uniq命令的使用

2022-09-23 22:48:15 字數 2529 閱讀 3537

基本文字處理-uniq命令的使用

sort 命令的-u引數只對鍵值段有效,即使其它部分不同,sort對於相同鍵值段的記錄還是會丟棄。

linux shell說得簡單一些就是把linux中現有的工具和命令按照一定的方式(流程控制和條件判斷)重新組織的方法,而其中的文字工具和命令的使用方法佔據了shell學習過程的大部分內容,只要掌握了這些工具的使用方法,學習好shell也是指日可待。本文說明如何使用uniq命令顯示或刪除文字中重複的行。

www.2cto.com  

uniq命令格式:

uniq [  -c | -d | -u ] [  -f fields ] [  -s characters ] [  -fields ] [ +characters ] [ infile [ outfile ] ]

用法說明:

uniq命令如果執行成功,uniq 命令退出,返回值 0。否則,命令退出返回值大於 0。

uniq命令刪除檔案中的重複行。 uniq 命令讀取由 infile 引數指定的標準輸入或檔案。該命令首先比較相鄰的行,然後除去第二行和該行的後續副本。重複的行一定相鄰,這是必須的如果不相信鄰,uniq將不能合併,即遠處相同的不能變成唯一,切記。(在發出 uniq 命令之前,請使用 sort 命令使所有重複行相鄰。)最後,uniq 命令將最終單獨的行寫入標準輸出或由 outfile 引數指定的檔案。infile 和 outfile 引數必須指定不同的檔案。

www.2cto.com  

其中infile輸入檔案必須是文字檔案。該文字檔案是包含組織在一行或多行中的字元的檔案。這些行的長度不能超出 2048 個位元組(包含所有換行字元),並且其中不能包含空字元。 lamp學習 linux基礎 centos教程

預設情況下,uniq 命令比較所有行。如果指定了-f fields 或 -fields 標誌, uniq 命令忽略由 fields 變數指定的字段數目。 field 是乙個字串,用乙個或多個 空格 > 字元將它與其它字串分隔開。如果指定了 -s characters 或 -characters 標誌, uniq 命令忽略由 characters 變數指定的字段數目。 為 fields 和 characters 變數指定的值必須是正的十進位制整數。

當前本地語言環境決定了 -f 標誌使用的 空白》 字元以及 -s 標誌如何將位元組解釋成字元。

引數說明:

-c     刪除重複行後輸出文字內容,並在輸出行前面加上每行在輸入檔案**現的次數。

-d     僅顯示重複行。

-f fields     忽略由 fields 變數指定的字段數目。

如果 fields 變數的值超過輸入行中的字段數目, uniq 命令用空字串進行比較。 這個標誌和 -fields 標誌是等價的。

-u     僅顯示不重複的行。

-s characters     忽略由 characters 變數指定的字元的數目。

如果 characters 變數的值超過輸入行中的字元的數目,uniq 用空字串進行比較。 如果同時指定 -f 和 -s 標誌, uniq 命令忽略由 -s characters 標誌指定的字元的數目,而從由 -f fields 標誌指定的字段後開始。 這個標誌和 +characters 標誌是等價的。

-fields     忽略由 fields 變數指定的字段數目。 這個標誌和 -f fields 標誌是等價的。

+characters     忽略由 characters 變數指定的字元的數目。

如果同時指定 - fields 和 +characters 標誌, uniq 命令忽略由 +characters 標誌指定的字元數目,並從由 -fields 標誌指定的字段後開始。 這個標誌和 -s characters 標誌是等價的。

uniqe -c -d -u

# cat fruits.txt

apple

apple

banana

%%banana

orange

orange

persimmon

# uniq fruits.txt

apple

banana

%%banana

orange

orange

persimmon

# uniq -c fruits.txt

2 apple

1 banana

1 %%banana

1 orange

1 orange

1 persimmon

如果要按照出現次數公升序,我自己寫的,嘻嘻

# uniq -c fruits.txt|sort -t' ' -nk1

1 banana

1 %%banana

1 orange

1 orange

1 persimmon

2 apple

# uniq -c -d fruits.txt

2 apple

# uniq -c -u fruits.txt

1 banana

1 %%banana

1 orange

1 orange

1 persimmon

文字處理命令

sort命令 sort命令的功能是對檔案中的各行進行排序。sort命令有許多非常實用的選項,這些選項最初是用來對資料庫格式的檔案內容進行各種排序操作的。實際上,sort命令可以被認為是乙個非常強大的資料管理工具,用來管理內容類似資料庫記錄的檔案。sort命令將逐行對檔案中的內容進行排序,如果兩行的首...

文字處理命令

1 cat命令 功能 顯示檔案內容 並且可以連線多個檔案一起顯示 語法 cat 選項 檔名1 檔案2 如何沒有跟檔案可以從標準輸入 n 檔名 給檔案內容列出增加檔案行號 a 顯示檔案內容,並且連線檔案結束符也顯示 linux系統文字結束符預設是 windows系統文字結束符是回車符 空格鍵 按頁向下...

SHELL基本的文字處理命令(二)

sed stream editor 一次處理一行內容,處理時,把當前的行儲存在臨時緩衝區,處理完後,輸送到螢幕 sed 引數 命令 file p 顯示 d 刪除 a 新增 c 替換 i 插入 1.p 顯示 sed n p etc fstab sed n p etc fstab sed n p etc...