我正在尝试运行以下代码来排除少于6行的文件,但是它似乎排除了包含更多行的文件,并且随机包含了少量的文件。 if / else语句位于循环中,并且已定义$ filename。
if [[ $(wc -l $f) > 6 ]]; then
echo "$filename"
else
echo "skipping $filename"
fi
答案 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