パフォーマンスを向上させるには、1つの巨大なソースファイルに対して2つのことを試してください。

パフォーマンスを向上させるには、1つの巨大なソースファイルに対して2つのことを試してください。

私は1つのLinuxコマンドで2つのことをしています。タスクは次のとおりです

  1. ソースファイルのデータを新しいターゲットファイルに送信します。

  2. ソースファイルのレコード数を計算します。

例:ソースファイル:a.txt、ターゲットファイル:b.txt

cat a.txt > b.txt; cat a.txt | wc -l

上記の例では、a.txt両方の操作を実行するためにデータを2回取得します。しかし、私のソースファイルは非常に大きいです。したがって、パフォーマンスを向上させるために、ソースファイルからデータを一度だけ抽出し、両方の操作を実行する方法を見つけたいと思います。

どうすればいいですか?

ベストアンサー1

teeあなたが探しているコマンドは次のとおりです

cat a.txt | tee b.txt | wc -l

また、コメントで提案されているように短くしたい場合は、stdinを完全にcat使用せずa.txtに次に直接リダイレクトできます。tee

tee b.txt < a.txt | wc -l

~からマニュアルページ:

tee- 標準入力から読み込み、標準出力とファイルに書き込み

おすすめ記事