gpt4 book ai didi

bash - 删除分隔符之间的重复文本

转载 作者:行者123 更新时间:2023-11-29 09:09:30 25 4
gpt4 key购买 nike

我有一个 fortune 的数据文件其中包含许多重复的财富。我想删除它们。

运势由 % 划定,因此运势文件示例可能如下所示:

%
This is sample fortune 1
%
This is
sample fortune 2
%
This fortune
is repeated
%
This is sample fortune 3
%
This fortune
is repeated
%
This fortune
is unique
%

如您所见,财富可以跨越多条线,呈现 solutions here没用。

如何找到并删除重复的运势?我只是想找到一种方法让 awk 忽略以 % 开头的行,但是有些 fortunes 共享相同的行但总体上不相同(例如我的最后两个例如),所以这还不够。

到目前为止,我一直在尝试使用 awk 解决这个问题,但任何工具都可以。

最佳答案

这是 awk 的工作:

awk 'seen[$0]{next}{seen[$0]=1}1' RS='%' ORS='%' fortune

RS='%' 表示我们使用 % 作为记录分隔符。

seen[$0] 检查我们是否已经看到这个值。 $0 是整个记录,财富的文本,作为字符串。如果我们已经看到我们将移动到下一条记录的值并且不打印任何内容。

{seen[$0]=1} 将记录添加到查找表。 1 打印当前记录,因为它始终为真。请注意,由于之前的 next 语句,只有在我们之前没有看到记录时才会执行此代码。

ORS='%' 将输出记录分隔符设置为 %

关于bash - 删除分隔符之间的重复文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33508604/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com