wc命令用于排除包含少于X行的文件

时间:2017-06-29 14:49:37

标签: bash unix

我正在尝试运行以下代码来排除少于6行的文件,但是它似乎排除了包含更多行的文件,并且随机包含了少量的文件。 if / else语句位于循环中,并且已定义$ filename。

 if [[ $(wc -l $f) > 6 ]]; then
    echo "$filename"
  else
    echo "skipping $filename"
  fi

1 个答案:

答案 0 :(得分:1)

问题在于wc -l输出,结果文件名和行号。

if [[ $(wc -l $f|awk '{print $1}') > 6 ]]; then
    echo "$filename"
  else
    echo "skipping $filename"
  fi

wc -l返回带有文件名的行号。所以你需要在比较之前删除文件名。例如:

wc -l ola
7 ola