我想从文本文件中删除重复的条目,例如:
kavitha= Tue Feb 20 14:00 19 IST 2012 (duplicate entry)
sree=Tue Jan 20 14:05 19 IST 2012
divya = Tue Jan 20 14:20 19 IST 2012
anusha=Tue Jan 20 14:45 19 IST 2012
kavitha= Tue Feb 20 14:00 19 IST 2012 (duplicate entry)
Run Code Online (Sandbox Code Playgroud)
有没有办法使用Bash脚本删除重复的条目?
期望的输出
kavitha= Tue Feb 20 14:00 19 IST 2012
sree=Tue Jan 20 14:05 19 IST 2012
divya = Tue Jan 20 14:20 19 IST 2012
anusha=Tue Jan 20 14:45 19 IST 2012
Run Code Online (Sandbox Code Playgroud) 我想做以下事情
awk 'BEGIN {FS=" ";} {printf "'%s' ", $1}'
Run Code Online (Sandbox Code Playgroud)
但是以这种方式逃避单引号是行不通的
awk 'BEGIN {FS=" ";} {printf "\'%s\' ", $1}'
Run Code Online (Sandbox Code Playgroud)
这该怎么做?感谢帮助.
我在Python中有一个实用程序脚本:
#!/usr/bin/env python
import sys
unique_lines = []
duplicate_lines = []
for line in sys.stdin:
if line in unique_lines:
duplicate_lines.append(line)
else:
unique_lines.append(line)
sys.stdout.write(line)
# optionally do something with duplicate_lines
Run Code Online (Sandbox Code Playgroud)
这个简单的功能(uniq无需先排序,稳定排序)必须作为简单的UNIX实用程序提供,不是吗?也许是管道中过滤器的组合?
询问的原因:在我无法从任何地方执行python的系统上需要此功能
我将合并多个CSV文件。我想做的是:
1)从文件中删除重复的行,但是,我需要检查多列作为构成重复项的标准。我怎么做?
2)然后创建第二个输出文件以查看被删除的内容,以防万一删除了不应该删除的内容。
3)创建一个项目列表作为输入文件来运行(如果此行在此特定列中包含此单词,则删除整个行。
如果有人可以通过命令帮助我,那就太好了!如果需要澄清,请告诉我。
以下是数据外观的示例(以下是建议的示例):
我有一个这样的csv文件:
column1 column2
john kerry
adam stephenson
ashley hudson
john kerry
etc..
Run Code Online (Sandbox Code Playgroud)
我想从此文件中删除重复项,以仅获取1处的问题:
column1 column2
john kerry
adam stephenson
ashley hudson
Run Code Online (Sandbox Code Playgroud)
对于问题3,我想获取第二个列表...表示第一个列表的输出并进一步整理此列表。我想要一个像input.txt这样的文件,其中包含:
adam
Run Code Online (Sandbox Code Playgroud)
然后,最终输出将是:
column1 column2
john kerry
ashley hudson
Run Code Online (Sandbox Code Playgroud)
因此,示例中的input.txt文件包含单词adam(通过这种方式,我可以列出一长串单词来检查input.txt文件)。对于#3,我需要一个代码片段,它将检查所有单词输入文件的CSV所有行的第1列,然后从csv中删除所有匹配项。