wc -l ファイルを変数として

wc -l ファイルを変数として

ファイルパスが与えられたら、行数を確認して変数に保存したいと思います。たとえば、

/three_little_pigs.csv

straw
wood
bricks

3ファイルに数字(または文字列)を保存したいです。次のコマンドを試しました。

export P="three_little_pigs.csv"
NUM_LINES=(wc -l < "${P}")

ただし、常に次のエラーが発生します。

bash: house: line 12: syntax error near unexpected token `<'

ベストアンサー1

bashでサブシェルを実行するには$(...)。そして、入力をリダイレクトする必要はなく、入力ファイルの名前を指定するだけです。だから省略<

NUM_LINES=$(wc -l "$P")

出力:

3 three_little_pigs.csv

ファイル名を削除するには、awkを使用することが1つの可能性です(他の方法もたくさんあります)。

NUM_LINES=$(wc -l "$P" | awk '{print $1}')

編集1:

いいですね。リダイレクト(<)を使用すると、ファイル名は完全に省略されます...申し訳ありません;)

NUM_LINES=$(wc -l < "$P")

おすすめ記事