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

首頁 > 系統(tǒng) > Linux > 正文

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

2019-10-26 18:39:58
字體:
供稿:網(wǎng)友

Linux下文本處理工具很豐富很強大,例如這樣一個文件:
代碼如下:cat log
www.jb51.net 192.168.1.1
www.jb51.net 192.168.1.1
www.jb51.net 192.168.1.2
ffffffffffffffffff
ffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
fffffffffffffffffff
eeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeee
gggggggggggggggggggg

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

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

代碼如下:shell> sort -k2n file | uniq > a.out

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

2.使用用sort+awk命令
注意:單純awk同樣不行,原因同上。
代碼如下: shell> sort -k2n file | awk '{if ($0!=line) print;line=$0}'

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

3.用sort+sed命令,同樣需要sort命令先排序。
代碼如下:shell> sort -k2n file | sed '$!N; /^/(.*/)/n/1$/!P; D'

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 潞西市| 临城县| 邛崃市| 关岭| 鹤峰县| 蒲江县| 平远县| 辰溪县| 达孜县| 台北市| 进贤县| 台江县| 红安县| 鹤峰县| 霸州市| 法库县| 镇坪县| 桃源县| 德格县| 武穴市| 蛟河市| 内丘县| 连平县| 齐河县| 道真| 阳西县| 越西县| 黔西县| 集安市| 休宁县| 合山市| 淮滨县| 东乡县| 青州市| 襄汾县| 桐梓县| 轮台县| 宣化县| 龙井市| 贵港市| 安吉县|