2016-03-20 20 views
-3

echoに2つの変数を持つコードがあります。私はコード内にスペースが1つしかないのに、なぜ$NEXTの前にスペースが表示されるのかわかりません。エコーが多すぎます

NEXT=$(find "${DIR}" -type f -name "*.$ext" | sed "s/.*\/\.//g" | sed "s/.*\///g" | 
sed -n '/.*\..*/p' | wc -l) 
echo "Files .$ext: $NEXT" 

Files .tar:  1 
+0

ヘルプが必要な場合は、すべての関連コードを入力する必要があります。 –

+1

'$ NEXT'にはスペースが含まれているか、タブです。 – bishop

+0

私の間違い...今それは問題ないはずです。 – user3463055

答えて

1

あなたfind表現は、あなたがそれだと思う何をしていません。数字のの形式は、ディストリビューションのデフォルトのコンパイルオプションwcに依存します。一般的に、情報がの場合、またはからwcにリダイレクトされた場合、返される値は先行する空白なしである必要があります。ただし、wcのインストールがそのように機能する保証はありません。あなたはそれを試すことができ、結果を確認することができます。

ls "$HOME" | wc -l 

値の前に空白が戻された場合 - 問題が見つかりました。

0

最後の行が出力であれば、表示されたコード以外の出力であるようです。あなたの出力は奇妙に見える場合は、各変数の周りに単一引用符を入れてみてください:

echo " Average file size .'$ext': '$AEXT'" 

そのようにスペース(またはタブ)は、変数自身またはスクリプトから来ている場合、あなたは、知っているだろう。

NEXT=$(find "${DIR}" -type f -name "*.$ext" | sed "s/.*\/\.//g" | sed "s/.*\///g" | 
sed -n '/.*\..*/p' | wc -l) 

wc -lにあなたパイプはあなたがが残されている場合:

関連する問題