UNIX查找用于查找未按配对的文件名

UNIX查找用于查找未按配对的文件名,unix,find,Unix,Find,有没有一种简单的方法可以递归地查找目录层次结构中没有具有不同扩展名的匹配文件的所有文件 例如,目录中有一堆以.dat结尾的文件 我想找到没有附带.out文件的.dat文件 我有一个while循环来检查每个条目,但是对于长列表来说这是很慢的 我使用的是GNU find。可能是这样的 find . -name "*.dat" -print | sort > column1.txt find . -name "*.out" -print | sort > column2.txt diff

有没有一种简单的方法可以递归地查找目录层次结构中没有具有不同扩展名的匹配文件的所有文件

例如,目录中有一堆以.dat结尾的文件

我想找到没有附带.out文件的.dat文件

我有一个while循环来检查每个条目,但是对于长列表来说这是很慢的


我使用的是GNU find。

可能是这样的

find . -name "*.dat" -print | sort > column1.txt
find . -name "*.out" -print | sort > column2.txt
diff column1.txt column2.txt

我还没有测试过它,但我认为它可能接近您的要求。

我不得不在第一个解决方案中添加一些提示,但这是一个良好的开端,谢谢

find . -name '*.dat' -printf "[ -f %p ] || echo %p\n" | sed 's/\.dat/.out/' | sh
找到-打印| grep-Fi'.dat'| grep-vFi'.dat'.| sort | sed-e's/.dat//g'>column1.txt
找到-打印| grep-Fi'.out'| grep-vFi'.out'..| sort | sed-e's/.out//g'>column2.txt

sdiff-s column1.txt column2.txt | grep-F’我不得不添加了一堆铃铛和口哨,但这是一个好的开始,谢谢。。。找到-打印| grep-Fi.dat'| grep-vFi.dat'.| sort | sed-e的/\.dat//g'>column1.txt查找-列印“GRIP-FI”.out“.sE-E-s/\.out//g′> Culn2.2TXT sDIF-S Cyrn1.TXT Culn2.TXT*GRIP-F'谢谢AMITIGG,但是我认为您的解决方案由于文件名中的空格而失败了。您应该考虑问这个问题。