国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Linux Shell > 正文

shell中刪除文件中重復(fù)行的方法

2020-07-27 19:18:02
字體:
供稿:網(wǎng)友

Linux下文本處理工具很豐富很強(qiáng)大,例如這樣一個(gè)文件:

復(fù)制代碼 代碼如下:
cat log
www.survivalescaperooms.com 192.168.1.1
www.survivalescaperooms.com 192.168.1.1
www.survivalescaperooms.com 192.168.1.2
ffffffffffffffffff
ffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
fffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeee
gggggggggggggggggggg

可用以下方法去除重復(fù)行:

1.使用uniq/sort刪除重復(fù)行
注意:單純uniq是不行的。

復(fù)制代碼 代碼如下:
shell> sort -k2n file | uniq > a.out

這里我做了個(gè)簡單的測試,當(dāng)file中的重復(fù)行不再一起的時(shí)候,uniq沒法刪除所有的重復(fù)行。經(jīng)過排序后,所有相同的行都在相鄰,因此unqi可以正常刪除重復(fù)行。

2.使用用sort+awk命令
注意:單純awk同樣不行,原因同上。

復(fù)制代碼 代碼如下:
shell> sort -k2n file | awk '{if ($0!=line) print;line=$0}'

也可以使用 awk '!i[$1]++' log;

3.用sort+sed命令,同樣需要sort命令先排序。

復(fù)制代碼 代碼如下:
shell> sort -k2n file | sed '$!N; /^/(.*/)/n/1$/!P; D'

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 大姚县| 丹东市| 馆陶县| 蓬安县| 綦江县| 京山县| 海伦市| 温宿县| 昌乐县| 西宁市| 孟村| 兴化市| 德惠市| 聊城市| 屯昌县| 富蕴县| 阿坝| 合肥市| 额济纳旗| 左云县| 梁河县| 句容市| 武隆县| 饶平县| 诸暨市| 西昌市| 宁武县| 六安市| 金山区| 正蓝旗| 呼和浩特市| 晴隆县| 儋州市| 美姑县| 阜宁县| 东乡县| 会同县| 和硕县| 大港区| 和硕县| 惠东县|