假设我有一个类似于以下的文件:
123
123
234
234
123
345
Run Code Online (Sandbox Code Playgroud)
我想找出'123'重复多少次,重复'234'多少次等等.理想情况下,输出结果如下:
123 3
234 2
345 1
Run Code Online (Sandbox Code Playgroud) 我想从文本文件中删除重复的条目,例如:
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) 有没有办法在Unix中删除文件中的重复行?
我可以使用sort -u和uniq命令,但我想使用sed或awk.那可能吗?
这可能是许多常见问题解答 - 而不是使用:
cat file | command
Run Code Online (Sandbox Code Playgroud)
(这被称为无用的猫),正确的方式应该是:
command < file
Run Code Online (Sandbox Code Playgroud)
在第二,"正确"的方式 - 操作系统不必产生额外的过程.
尽管知道这一点,我继续使用无用的猫有两个原因.
更美观 - 我喜欢数据仅从左到右均匀移动.而且它更容易更换cat别的东西(gzcat,echo,...),添加第二个文件或插入新的过滤器(pv,mbuffer,grep...).
我"觉得"在某些情况下可能会更快.更快,因为有2个进程,1st(cat)执行读取而第二个执行任何操作.它们可以并行运行,这意味着有时可以更快地执行.
我的逻辑是否正确(第二个原因)?
如何仅打印在文件中出现一次的那些行?例如,给定此文件:
mountain
forest
mountain
eagle
Run Code Online (Sandbox Code Playgroud)
输出将是这个,因为该行mountain出现两次:
forest
eagle
Run Code Online (Sandbox Code Playgroud)