求助,使用awk、sed消除区域内出现的重复行

以#号为区域,进行去重,不影响到其他#号范围的内容.(#号固定,#后的字符随机出现,但不会重复.)txt内容如下:#AA1213A2…(省略)#EFG12223322…去... 以#号为区域,进行去重,不影响到其他#号范围的内容.
(#号固定,#后的字符随机出现,但不会重复.)
txt内容如下:
#AA
1
2
1
3
A
2
…(省略)
#EFG
1
2
22
33
22

去重结果:
#AA
1
2
3
A

#EFG
1
2
22
33

(#号为段落,去掉#号以下的重复内容)
展开
 我来答
luneng8183
2016-11-22 · TA获得超过902个赞
知道小有建树答主
回答量:606
采纳率:100%
帮助的人:512万
展开全部

假设你有文件dup2.txt,内容如下

#AA
1
2
1
3
A
2
A
3
#EFG
1
2
22
33
22
33
44

代码:

#!/bin/bash

awk '
/^#/{
    delete seen
    print
    next
}

{
    if(seen[$0]++)
        next
    else 
        print 
}' dup2.txt
追问
感谢!请问用gawk在windows下应该怎么写?
匿名用户
2016-11-21
展开全部
sed "1d;$d" file
追问
这是删除第一行和最后一行,并不是去重复行啊……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式