循环遍历不同目录中的文件

时间:2012-12-22 04:57:30

标签: bash

我想编写一个脚本来遍历两个不同目录中的文件,并回显不同文件名模式的文件 我做了一个这样的但是不合适

#Files in one dir ABC-123-1.txt
#Files in subdir ABC-123.doc
for f in *.doc
  do
  f1=`echo $f|sed 's/.doc//g`'
  for f2 in ../*.txt
     do
     f3=`echo $f2|sed 's/..\///g'|sed 's/-1.txt//g'`
     if [ "$f1" != "$f3" ]
        then
        echo $f3
     fi
    done
  done

1 个答案:

答案 0 :(得分:-1)

如果我理解你打算用脚本做什么,你想在dir1中迭代以“.doc”结尾的文件,然后在dir2中打印文件名相同的文件并以“-1.txt结尾” ”

这可以通过这一个衬垫来实现:

for i in `ls <dir1>/*.doc | sed 's/\.doc$//'`; do ls <dir2>/"$i"-1.txt; done  2> /dev/null

(将dir1和dir2替换为您的目录)

“2&gt; / dev / null”将忽略第二个目录中不匹配的文件,并且只会打印匹配的文件。

希望有所帮助。