内容简介:有时候删除文件里的第一种方案是用 sort 命令的 -u 参数:第二种方案是用 awk 命令,它的关键在于用一个字典来保存记录:
有时候删除文件里的 重复行 是一个很常见的需求,这个用 shell 命令有很多处理方法。
第一种方案是用 sort 命令的 -u 参数:
$ sort -u input.txt > output.txt
第二种方案是用 awk 命令,它的关键在于用一个字典来保存记录:
$ awk '!seen[$0]++' input.txt > output.txt
这和第一种方案的区别在于,即使文件中重复行不连续,依然可以删除。
第三种方案是用 sed 命令,但是其实不大推荐,它相比第一种方案复杂多,而且很容易写错:
$ sort -n input.txt | sed '$!N;/^\(.*\)\n\1$/!P;D' > output.txt
这种方案里面用到了 sed 的高级命令(N、P、D),相关介绍可以参考之前写的文章 Sed and awk 笔记之 sed 篇:高级命令(一) 。
这里有一个小技巧,如果遇到比较复杂的 sed 命令拿捏不准的化,可以用 sedsed 这个脚本来调试执行,看每一步执行的情况。
使用方法也很简单,比如调试上面这个 sed 命令,命令执行结果会展示每一步执行后模式空间和保持空间的内容,一目了然:
$ sort -n input.txt | python sedsed.py -d '$!N;/^\(.*\)\n\1$/!P;D'
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 如何使用Python删除一个文件或文件夹
- Qt ListView 配合Model 显示文件与删除文件
- Go语言的文件操作:文件的读写,文件的新建打开和删除
- 使用脚本批量删除docker镜像文件
- 从 git 的历史记录中彻底删除文件或文件夹
- golang 递归删除PaxHeader文件夹
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Practical Algorithms for Programmers
Andrew Binstock、John Rex / Addison-Wesley Professional / 1995-06-29 / USD 39.99
Most algorithm books today are either academic textbooks or rehashes of the same tired set of algorithms. Practical Algorithms for Programmers is the first book to give complete code implementations o......一起来看看 《Practical Algorithms for Programmers》 这本书的介绍吧!