在文本文件中,我需要删除与下一行完全相同的行。请参见下面的示例。
输入:
I like
I like apples
I like apples and oranges
more
more everyday
more everyday
more everyday the more
more everyday the more I play
I
I like
输出:
I like apples and oranges
more everyday the more I play
I like
单程:
$ perl -lne 'print $last unless /^\Q$last/; $last = $_;
END { print $last }' input.txt
I like apples and oranges
more everyday the more I play
I like
此sed
过滤器读取下一行并删除前一行,只要它匹配:
sed ':0;N;s/^\(.*\)\n\1/\1/;t0;P;D'
欢迎来到 SO!如果您包括您尝试过的内容以及您遇到问题的确切位置,那就更好了。
只是快一点!
你能给我一个 input.txt 的例子吗?我似乎无法让它删除任何东西,不确定我输入的方式是否错误,它在 Mac 上不起作用,或者它根本不做我们想要的。
@proxsi - 无论你写sed … input.txt还是sed …
@Armali 我和你一样输入了。它不适用于 Mac OSX 10.15.3 Catalina。但是它在 Debian 8 上运行良好。感谢检查。