line(records) は dat ファイルの 1 つのコマンドで同時に計算して grep します。

line(records) は dat ファイルの 1 つのコマンドで同時に計算して grep します。

行数を数え、その数をシェルスクリプトの変数に入れたいです。例えば。

 wc -l filename.dat

221 filename.dat 後で使用できる変数に「221」をgrepしたいと思います。これを1つの文で実行できますか?出力をwc -l別のファイルにコピーしてからgrepにコピーしたくありません。

答え1

ファイル名をSTDINに渡すことで、行数だけを取得wcできます。

wc -l <filename.dat

変数として保存するには:

var="$(wc -l <filename.dat)"

例:

$ wc -l foo.txt 
12 foo.txt

$ wc -l <foo.txt 
12

$ var="$(wc -l <foo.txt)"

$ echo "$var"
12

次のように注意してくださいステファン・チャゼラスは次のように指摘しています。、いくつかのwcバリエーションでは、目的のソートを得るために行番号の前後にスペースを追加することができます。

関連情報