无法读取bash管道中的所有文件行

时间:2018-08-14 12:27:16

标签: bash shell pipe pipeline

我搜索了却找不到任何东西,也许我无法正确理解问题。 我有一个bash函数,可以读取当前目录和子目录中的文件,我正在尝试排列文本并分析数据,但是如果使用管道,我会以某种方式丢失行。 代码:

function recursiveFindReq {
    for file in *.request; do
        if [[ -f "$file" ]]; then
          echo handling "$file"
          echo ---------------with pipe-----------------------
          cat "$file" | while read -a line; do  
            if (( ${#line} > 1 )); then
                echo ${line[*]}
            fi
          done
          echo ----------------without pipe----------------------
          cat "$file"
          echo
          echo num of lines: `cat "$file" | wc -l`
          echo --------------------------------------
        fi
    done

    for dir in ./*; do
        if [[ -d "$dir" ]]; then
            echo cd to $dir
            cd "$dir"
            recursiveFindReq "$1"
            cd ..
        fi
    done
}

输出为: losing lines even when they meet requirements

我用2个红色箭头标记了我丢失信息的地方

0 个答案:

没有答案