Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 删除带有2个单词的重复行_Bash - Fatal编程技术网

Bash 删除带有2个单词的重复行

Bash 删除带有2个单词的重复行,bash,Bash,我有一个保存newdir和finish目录的文件: newdir 26.01.2020_17:28 Directory1 finish 26.01.2020_17:28 Directory1 newdir 26.01.2020_17:29 Directory2 finish 26.01.2020_17:29 Directory2 newdir 26.01.2020_17:28 Directory3 finish 26.01.2020_17:28 Directory4 newdir 26.01.2

我有一个保存newdir和finish目录的文件:

newdir 26.01.2020_17:28 Directory1
finish 26.01.2020_17:28 Directory1
newdir 26.01.2020_17:29 Directory2
finish 26.01.2020_17:29 Directory2
newdir 26.01.2020_17:28 Directory3
finish 26.01.2020_17:28 Directory4
newdir 26.01.2020_17:29 Directory5
finish 26.01.2020_17:29 Directory3
newdir 26.01.2020_17:28 Directory6
finish 26.01.2020_17:28 Directory6
newdir 26.01.2020_17:29 Directory7
finish 26.01.2020_17:29 Directory7
newdir 26.01.2020_17:28 Directory8
finish 26.01.2020_17:28 Directory9
newdir 26.01.2020_17:29 Directory10
finish 26.01.2020_17:29 Directory11
我想删除所有目录名和newdir匹配的地方并完成匹配。 或者换一种说法:目录名是否与newdir协商并完成,然后在文件中删除它

newdir 26.01.2020_17:29 Directory2
finish 26.01.2020_17:29 Directory2
示例:Directory2有newdir和finish,然后在文件中删除这两个

newdir 26.01.2020_17:29 Directory2
finish 26.01.2020_17:29 Directory2
不幸的是,我没有办法解决这个问题。。 有人能帮我吗

谢谢

问候

编辑: 文件中的预期结果:

finish 26.01.2020_17:28 Directory4
newdir 26.01.2020_17:29 Directory5
newdir 26.01.2020_17:28 Directory8
finish 26.01.2020_17:28 Directory9
newdir 26.01.2020_17:29 Directory10
finish 26.01.2020_17:29 Directory11

我会这样做,但awk也可能是一个好方法

sort -k3 dirlist | uniq -u -f2
它将按第3列对文件目录列表进行排序,并根据第3列仅获取唯一的行

输出

newdir 26.01.2020_17:29 Directory10
finish 26.01.2020_17:29 Directory11
finish 26.01.2020_17:28 Directory4
newdir 26.01.2020_17:29 Directory5
newdir 26.01.2020_17:28 Directory8
finish 26.01.2020_17:28 Directory9
编辑

newdir 26.01.2020_17:29 Directory10
finish 26.01.2020_17:29 Directory11
finish 26.01.2020_17:28 Directory4
newdir 26.01.2020_17:29 Directory5
newdir 26.01.2020_17:28 Directory8
finish 26.01.2020_17:28 Directory9
使用awk(这也将保留订单)

awk'{seen[$3]++;line[++count]=$0;key[count]=$3}
结束{

对于(i=1;我可以请您在您的帖子中发布示例预期输出,然后让我们知道您提到希望
删除
行;您是在寻找更新源文件的解决方案,还是需要生成新文件(减去
删除的
行)?