0

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

#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
4

1 回答 1

-1

如果我正确理解您打算对脚本执行的操作,您希望遍历 dir1 中以“.doc”结尾的文件,然后在 dir2 中打印具有相同文件名并以“-1.txt”结尾的文件。

这可以在 bash 中使用这一行来实现:

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

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

"2>/dev/null" 将忽略第二个目录中不匹配的文件,并且只打印匹配的文件。

希望有帮助。

于 2012-12-22T07:34:36.180 回答