プログラムがファイルのどこから読み取っているのかを把握する方法はありますか? straceまたはdtraceで実行できるようです。
質問を明確にして動機を与えるために、10 GB のログ ファイルがあり、一意の行の数を数えているとします。
$ cat log.txt | sort | uniq | wc -l
ファイルのcat
現在の場所を確認して、コマンドの進行状況を効果的に確認できますか? を使用lsof
すると、最後に読み取ったファイルのオフセットを取得できないようです。これがトリックを行うと思います:
$ lsof log.txt
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
cat 16021 erik 3r REG 0,22 13416118210 1078133219
編集:申し訳ありませんが、私が示した例は狭すぎて要点を逃しています。理想的には、任意のプログラムの場合、(パイプに関係なく) ファイルの読み取りが行われている場所を確認したいと考えています。