循环多个文件,只读取第一个文件

时间:2015-07-23 14:56:37

标签: linux bash

所以我有一个工作,因为它去多个目录然后在这些目录中从文件中获取多个字段并将其存储在.txt文件中。 有两个循环,第一个循环遍历所有文件夹 第二个循环遍历所有文件。 我遇到的问题是在第二个循环中它只读取文件夹中的第一个文件,然后它移动到下一个文件夹并忽略文件夹中的所有其他文件。

archive=/imdata/archive
inventory_archive=/imdata/a/shares/b/inventory/c

ls $archive | while read p; do
   echo "Project: $p"
   mkdir -v $inventory_archive/$p
   dir=$inventory_archive/$p
   ls -1 $archive/$p/d001 | while read s; do
       echo "Searching Session: $s ..."
       find $archive/$p/d001/$s -type f -iname "*.txt" | while read f; do
           echo "FILE: $f"

           study=`/home/me/program/bin/script $f | grep -m1 "field1" | cut -d "[" -f2 | cut -d "]" -f1`
           echo "SID: $study"
           if [ ! -d "$dir/$study" ]; then
                mkdir -v $dir/$study
           fi
           studydir=$dir/$study

           series=`/home/me/program/bin/script $f | grep -m1 "field2" | cut -d "[" -f2 | cut -d "]" -f1`
           echo "SID_2: $series"
           if [ ! -a "$studydir/$series.txt" ]; then
                touch $studydir/$series.txt
           fi

           sop=`/home/me/program/bin/script $f | grep -m1 "field3" | cut -d "[" -f2 | cut -d "]" -f1`
           echo "SID_3: $sop"
           grep -qsF $sop $studydir/$series.txt || echo $sop >> $studydir/$series.txt

           exit 1;
       done;
   done;
done;

0 个答案:

没有答案