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

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

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

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

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

復(fù)制代碼 代碼如下:
cat log
m.survivalescaperooms.com 192.168.1.1
m.survivalescaperooms.com 192.168.1.1
m.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ā)表
主站蜘蛛池模板: 郴州市| 祁东县| 平陆县| 逊克县| 丹凤县| 清流县| 乌拉特前旗| 通州区| 高密市| 栾城县| 宜良县| 万年县| 米易县| 江川县| 南和县| 定州市| 昌都县| 定边县| 宁南县| 儋州市| 吉林市| 夹江县| 视频| 登封市| 喜德县| 沽源县| 清丰县| 汉阴县| 犍为县| 柘荣县| 砀山县| 大安市| 洛宁县| 浦城县| 怀远县| 烟台市| 高邑县| 且末县| 杭锦旗| 金坛市| 翁牛特旗|