ファイルから行を読み取り、各行の最初の列を取得し、その行という名前のファイルに追加するスクリプトがあります ($id.txt という名前のさまざまなファイルを書き込もうとしています)。
(単一ノードのマシンで) これよりも高速なスクリプトを作成することは可能ですか? タブ区切りのフィールドがあり、保持したいフィールドにバックスラッシュなどの特定の文字があるためread -r
、 andを使用していることに注意してください。id="$(echo $line | awk '{print $1}')"
while read -r line
do
id="$(echo $line | awk '{print $1}')"
echo "$line" >> $id.txt
done < $1
私の入力のいくつかの特徴:
- 出力
$id.txt
ファイルはそれほど大きくなく、通常は平均で数百行、最大で数千行です - IDは実際にはすでにソートされており、行は連続したブロックになっています。つまり:
abc ... abc ... def ... def ... def ... def ... ghi ... ghi ...