2

wcで一時ファイルを使わずに、あるファイルの行数を調べたい。次のようなものを使用してみました:var=${wc -l a.txt}またはwc -l a.txt | read line、両方とも機能しませんでした。

4

2 に答える 2

4

コマンドの出力を保存する方法は、使用var=$(command)したのではありvar=${command}ません。

したがって、これは次のようになります。

var=$(wc -l a.txt)    # returns XX a.txt

数値だけを保存するには、次のようにします。

var=$(wc -l < a.txt)  # returns XX
            ^
于 2014-03-18T15:41:04.137 に答える
1

注意してください!

wc -l < a.txt正しい答えのように見えるかもしれません... しかし、計算や if ブロック内のテストなど、別の場所でその数値を使用したい場合、スクリプトは失敗する可能性があります。なんで?wc -l番号が表示されますが、リリースによっては空白が先行する場合があります(wcコメントをご覧ください)。番号のみを取得するには、次のようにします。

echo $(wc -l < a.txt)

これが役立つことを願っています!

于 2014-03-18T16:04:41.300 に答える