awk:如何删除文件中的重复行并同时将它们输出到另一个文件中?

lac*_*991 1 csv bash awk uniq

我目前正在处理一个处理csv文件的脚本,它所做的一件事是删除并记下文件中的重复行.我目前的方法是使用uniq -d一次运行uniq以显示所有重复项,然后再次运行uniq而不用任何选项来实际删除重复项.话虽如此,我想知道是否可以在一个动作中执行相同的功能,而不是必须运行uniq两次.我发现了一些使用awk删除重复项的不同示例,但据我所知,我无法找到任何显示重复项并同时删除它们的示例.如果有人可以为此提供建议或帮助,我会非常感激,谢谢!

Ed *_*ton 5

这是让你入门的东西:

awk 'seen[$0]++{print|"cat>&2";next}1' file > tmp && mv tmp file
Run Code Online (Sandbox Code Playgroud)

上面会将任何重复的行打印到stderr,同时从输入文件中删除它们.如果您需要更多,请告诉我们更多......