我正嘗試執行下面的命令 - 但輸出已經引入了一些前導空格。使用wc -l命令時出現意外的前導空格
ls -lrt | wc -l
29
echo $SHELL
/bin/bash
當我在不同的機器上運行相同的命令時,輸出如預期。
ls -lrt | wc -l
183
echo $SHELL
/bin/bash
前導空格引起我的Perl驗證失敗
unless ($phCountRet->{COUNT} =~ /^\d+$/){
...
}
我可以選擇修剪領先的空格,然後做了驗證,但它不會是一個乾淨的解決方案。
任何可能導致這種情況的指針都會很有幫助。
相關:http://stackoverflow.com/questions/10238363/how-to-get-wc-l-to-print-just-the-number-of-lines-without-file-name是否其中之一機器運行AIX? – reinierpost
爲什麼你認爲修整空白不乾淨? 'ls | wc -l | sed -e's/^ * //''看起來不像'ls -lrt |那麼幹淨wc -l',但你可以做相當於'perl -E'說長度glob'*「'',而不是根本不向外發送wc。 –
當你使用多個文件名運行'wc'時,它將對齊並右對齊數字,以便它們更清晰(至少在某些實現中)。輸出意味着比機器可讀的人類可讀。你只需要考慮輸出中的空白變化。 –