gpt4 book ai didi

bash - 列出没有匹配对的文件(递归地)

转载 作者:行者123 更新时间:2023-11-29 09:50:59 25 4
gpt4 key购买 nike

我在多个目录中有一组文件。他们中的大多数都有一对具有不同扩展名和相同基本名称的相关对。相关文件始终位于同一目录中。我只需要在包含所有子目录的目录中列出没有成对的文件(和路径)。我怎样才能在 bash 中做到这一点?

file1.xxx
file1.yyy

file2.xxx
file2.zzz

file3.xxx
file3.aaa

file4.xxx

非常感谢任何帮助!

最佳答案

您可以使用 find 和 pipe to perl 对数据进行排序

find . -type f -print0 |\
perl -0 -l012 -ne 'if(/.*\/(.*)\./){$x{$1}++;$y{$1}=$_}
}{for(keys %x){print $y{$_} if $x{$_}==1}'

这会将没有后缀的名称添加到每个匹配项的散列和增量中,同时将整行添加到具有相同键的另一个散列。

最后,它只检查有一个匹配项并打印。

由于文件名是空分隔的,它应该适用于所有文件名。

关于bash - 列出没有匹配对的文件(递归地),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44440327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com