我正在尝试执行以下命令 - 但输出引入了一些前导空格。
ls -lrt | wc -l
29
echo $SHELL
/bin/bash
当我在另一台机器上运行相同的命令时,输出是预期的。
ls -lrt | wc -l
183
echo $SHELL
/bin/bash
前导空格导致我的perl验证失败
unless ( $phCountRet->{COUNT} =~ /^\d+$/ ){
...
}
我可以选择修剪前导空格,然后进行验证,但它不是一个干净的解决方案。
任何可能导致此问题的指针都将是一个很大的帮助。
答案 0 :(得分:2)
使用
unless ( $phCountRet->{COUNT} =~ /^\s*\d+$/ ){
这也与前面的空白数字匹配。
答案 1 :(得分:0)
正如我在 WC on OSX - Return includes spaces 中所提到的,这是一个实现细节,在POSIX标准中并不明确(因此它取决于实现者对的偏好对齐列 - 或不。)