私がしたい
awk -F "," '{print $1 }' inputfile1.txt | sort -u > distinctOutput.txt
パフォーマンス面では大丈夫ですか?それとも、awkが完全な出力ダンプを完了するまでsortを待つ方が良いと思うので、一時ファイルをリダイレクト/使用する必要がありますか?それとも内部的に処理されますか?
(AIX 6.1)
ベストアンサー1
sort
一時ファイルは自動的に使用されるようです。記事のさまざまな場所で一時的な従業員が言及されています。man
そしてinfo
以下を含むページsort
:
--compress-program=PROG
compress temporaries with PROG; decompress them with PROG -d
-T, --temporary-directory=DIR
use DIR for temporaries, not $TMPDIR or /tmp; multiple options
specify multiple directories
環境変数TMPDIRが設定されている場合、sortはその値を/ tmpの代わりに一時ファイルのディレクトリとして使用します。 --temporary-directory(-T) オプションは環境変数をオーバーライドします。
テストするために、以下を実行しました。
base64 < /dev/urandom | sort
メモリ使用量が速く安定しますbase64
(sort
)top -bn1 | grep 'base64|sort'
。
21877 root 20 0 11.1m 0.6m 0.5m R 63.9 0.0 7:23.46 base64
21878 root 20 0 21.4m 8.2m 0.8m R 31.9 0.4 4:44.15 sort
/tmp
通話中に何百もの一時ファイルを表示できますsortXXXXXX
。
$ ls /tmp/sort* | head
/tmp/sort03IIcQ
/tmp/sort052vXK
/tmp/sort07ZCcO
/tmp/sort09yrTN
/tmp/sort0anX08
/tmp/sort0BruPR
/tmp/sort0EgCYY
/tmp/sort0GsbQs
/tmp/sort0hCMDD
/tmp/sort0hdSMT
$ ls /tmp | grep -c sort
1990
したがって、一時ファイルについて心配する必要はないと言いたいと思いますsort
。最善の方法は、一時ファイルの場所が高速ファイルシステム(SSDなどtmpfs
)にあることを確認することです。
免責事項:私はGNUソートのみを検討しました。
上記の分析はGNUソートにのみ適用されますが、AIXsort
リンクされたマニュアルによれば、一時ファイルも使用されるか、少なくとも一時ファイルのディレクトリが使用されます。これをテストできるAIXシステムはありません。
POSIX一時ファイルへの言及がないため、これは提供されません。