有没有办法删除 ed 中两个非并置的重复行?

有没有办法删除 ed 中两个非并置的重复行?

我正在寻找一种方法来删除 ed 中非并置的重复行,例如,

ed is a terminal editor
sam is a bitmap editor
emacs is a macro editor
ed is a terminal editor

我希望能够制作出:

ed is a terminal editor
sam is a bitmap editor
emacs is a macro editor

答案1

这是另一个案例可以更轻松地调用外部工具来完成工作,然后编辑该工具的输出:

$ed 文件
95
,n
1 ed 是一个终端编辑器
2 sam 是位图编辑器
3 emacs是宏编辑器
4 ed 是一个终端编辑器
e !awk '!seen[$0]++' %
awk '!seen[$0]++' 文件
71
,n
1 ed 是一个终端编辑器
2 sam 是位图编辑器
3 emacs是宏编辑器

awk通过这里调用的命令输出e !以前没有见过的行,并且会忽略已经见过的行。您可以awk在本网站的许多答案中找到这种特定用法的示例(例如这里,并附有解释这里)。

相关内容