2013-01-17 130 views
0

我是UNIX新手,请帮忙。检查目录中是否存在多个文件

我有一个文件,它有很多行,每行是一个文件名。

现在我想检查每个文件是否存在于具有某些前缀的另一个目录中。

例如,我的文本文件的内容是

abc.def.ghi.jkl 
mno.pqr.stu.vwx 

我想测试,如果每个文件在目录中存在,如

cd <search directory> 
ls -ltr *abc.def.ghi.jkl* 

如果上述结果为假,则抛出一个错误。

注意:文件内容是DYNAMIC,我通过另一个脚本生成这个文件。

+0

什么壳您正在使用?你有什么尝试? – gpojd

+0

以改进您将来的格式化,突出显示想要作为代码显示的文本,然后使用文本输入框右上角附近的格式化工具。祝你好运。 – shellter

回答

0

这是预期的应答

`ls -l > temp.cat 
for i in $(cat temp.txt) 
do 
     ls -l *$i* 
     if [[ $? -eq 0 ]] 
     then 
     echo " File found" 
     else 
     echo " File not found for $i" 
     fi 
done 
rm -f temp.txt` 

`

0

假设你的文件

$ cat myList 
abc.def.ghi.jkl 
mno.pqr.stu.vwx 

一个快速的解决方案是

cat myList | xargs ls -ltr 

如果没有找到的文件ls输出会抱怨与

ls: xxx: No such file or directory 

IHTH

到stdout
+0

感谢您的回应和建议的避难所... 即时搜索的目录不会有确切的文件名..其他一些东西将加上前缀 – makawana

+0

如果这不能解决您的问题,你可以重申它,带有样本输入,期望的输出和您尝试过的代码?否则,请通过答案左上角的柜台选择复选标记来接受帮助您的答案。祝你好运。 – shellter

+0

如果文件不存在,您的答案也不会给我一个错误 – makawana