删除包含重复文本的行

yae*_*ael 4 sed awk text-processing

我有一个文件,每行包含两个路径。我想两次删除包含相同路径的行。

我在 Linux 和 Solaris 上工作。我想要 sed 或 awk 或 perl 的单行。

示例输入文件:

     /usr/lib/libgmp.so.3.3.3 /usr/lib/libgmp.so.3.3.3
     /usr/lib/libxslt.so.1.1.17 /usr/lib/libxslt.so.1.1.17
     /usr/lib/sse2/libgmp.so.3.3.3 /usr/lib/sse2/libgmp.so.3.3.3
     /usr/local/swp-tomcat-6.0/lib/commons-logging-1.1.1.jar /usr/local/swp-tomcat-6.0/lib/commons-logging-1.1.1.jar
     /usr/share/doc/libXrandr-1.1.1 /usr/share/doc/libXrandr-1.1.1
     /usr/share/doc/libxslt-1.1.17 /usr/share/doc/libxslt-1.1.17
     /etc/3.3.3.255 /etc/172.17.211.255
     /etc/1.1.1.255 /etc/172.17.213.255
Run Code Online (Sandbox Code Playgroud)

预期输出:

     /etc/3.3.3.255 /etc/172.17.211.255
     /etc/1.1.1.255 /etc/172.17.213.255
Run Code Online (Sandbox Code Playgroud)

Bit*_*Nix 5

awk '{ if ($1 != $2 ) print $1" "$2; }' file
Run Code Online (Sandbox Code Playgroud)

只需将文件替换为适当的文件。

或者如评论中提到的@manatwork 和更简单

awk '$1!=$2' file
Run Code Online (Sandbox Code Playgroud)

  • 为什么不只是`awk '$1!=$2' 文件`? (5认同)