我试图执行下面的命令,但输出结果前面有一些空格。
ls -lrt | wc -l
29
echo $SHELL
/bin/bash
当我在另一台机器上运行相同的命令时,输出结果如预期。
ls -lrt | wc -l
183
echo $SHELL
/bin/bash
前面的空格导致我的perl验证失败
unless ( $phCountRet->{COUNT} =~ /^\d+$/ ){
...
}
我可以选择去除前导空格然后进行验证,但这不是一个完美的解决方案。
如果您能指出可能导致此问题的原因,那将是非常有帮助的。
ls | wc -l | sed -e 's/^ *//'
看起来并不比ls -lrt | wc -l
更不干净,但你可以直接执行相当于perl -E 'say length glob "*"'
的命令,而不需要使用wc。 - William Pursellwc
时,它会对数字进行对齐和右对齐,以使其更易读(至少某些实现是如此)。输出旨在更适合人类阅读而非机器阅读。您只需允许输出中的空白变化即可。 - Keith Thompson