Akihiro Motoki
amoto****@gmail*****
2013年 9月 26日 (木) 23:23:35 JST
元木です。 これも、一通り見ました。 だんだんコメントがいい加減になっている気がしなくもないですが・・・ あと、メールに引用されている箇所しか読んでいないのですが、全般的な印象として、 読点の位置がちょっと多めなのと、読点の位置が適切でない点がいくつか見受けられました。 後者は、ちょっと長めの節で、節の途中に読点があるのに、節の終わりに読点がなく、 次の節とつながってしまっているものでした。そのため、読みにくくなってしまっていました。 ちょっとどこだったか思い出せないので、コメントだけになってしまい、すみません。 以下、インラインで。 2013/9/14 長南洋一 <cyoic****@maple*****>: > 長南です。 > > 7.1 `sort' > > `-R' > `--random-sort' > `--sort=random' > Sort by hashing the input keys and then sorting the hash values. > Choose the hash function at random, ensuring that it is free of > collisions so that differing keys have differing hash values. > This is like a random permutation of the inputs (*note shuf > invocation::), except that keys with the same value sort together. > > ソートを行うのに、入力中のキーをハッシュしてから、そのハッシュ値 > をソートするという方法を用いる。ハッシュ関数はランダムに選んで、 > 衝突 (collision) が絶対起きないようにする。その結果、値の違うキーは > 必ず違うハッシュ値を持つようになる。これは、入力のランダムな並び > 替えに似ているが (*note shuf invocation::)、同じ値を持つキーは > 一緒に並べるという点が、異なっている。 Choose the hash function at random, .... の文ですが、 今の訳だと、「ランダムに選んだ結果、衝突が起きない」のように読めます。 意味としては、「衝突が起きないことを保証しつつ、ランダムにハッシュ関数を選択する」 「ハッシュ関数はランダムに選択するが、衝突が起きないことを保証しつつ選択する」 ということなので、表現を少し工夫した方がよいと思います。 この結果「必ず異なるキーは異なるハッシュ値を持つことになります」。 > If multiple random sort fields are specified, the same random hash > function is used for all fields. To use different random hash > functions for different fields, you can invoke `sort' more than > once. > > ランダムソートをするフィールドが複数指定されている場合は、ランダム > に選ばれた同じハッシュ関数が、すべてのフィールドで使用される。 > フィールドごとに別のランダムなハッシュ関数を使うようにするには、 > `sort' を複数回呼び出せばよい。 ハッシュ関数はランダムに選択されるが、 すべてのフィールドで同じ一つのハッシュ関数が使用される。 くらいでしょうか。同じものが使われるということがきちんと訳されていれば、 「ランダム」は省略しても意味は変わらないと思います。 > > 言っていることがさっぱりわからないまま訳しています。翻訳は意味が通って > いるでしょうか。 > > `--batch-size=NMERGE' > Merge at most NMERGE inputs at once. > > When `sort' has to merge more than NMERGE inputs, it merges them > in groups of NMERGE, saving the result in a temporary file, which > is then used as an input in a subsequent merge. > > 一度にマージする入力ファイルの数を多くても NMERGE 個までとする。 > > NMERGE 個以上の入力ファイルをマージしなければならない場合、`sort' > は NMERGE 個のファイルからなるグループを作ってマージし、その結果を > テンポラリ・ファイルに保存する。そして、今度はそれを入力として使用 > して、後に続くマージを行うのである。 > > sort の新しい man page では、「一度に最大 NMERGE 行、併合を行う」と > 訳されていますが、すぐ後に「(NMERGE の) デフォルトの値は 16 だが」と > あり、また src/sort.c には、こう書いてあります。 > > /* During the merge phase, the number of files to merge at once. */ > #define NMERGE_DEFAULT 16 > > ですから、NMERGE inputs は NMERGE 行の入力ではなく、NMERGE 個の入力 > ファイルでしょう。そこまで大丈夫だと思うのですが、それ以後の解釈は > 正しいかどうか自信なしです。 NMERGE 個の入力ファイルが正しいですね。 sort の manages 訳の間違いです。 残りもあっていると思います。 一箇所だけ修正: NMERGE 個以上、となっていますが、〜以上は ≧ を表すことが 多いので、私は普段は 〜個よりも多くの、と意図的に訳しています。 > > `-s' > `--stable' > Make `sort' stable by disabling its last-resort comparison. This > option has no effect if no fields or global ordering options other > than `--reverse' (`-r') are specified. > > 最後の手段の比較 (last-resort comparison) を行うのを止めて、`sort' > を現状維持指向 (stable) にする。このオプションは、フィールド指定 > オプションや、`--reverse' (`-r') 以外のグローバルな順序関係のオプ > ションが指定されていなければ、効果を持たない。(訳注: ここで言う > 現状維持指向 (stable) というのは、次のようなことである。たとえば、 > `-b' オプションを使って、先行する空白を無視して比較した場合に、 > 等価となる行があったとしよう。通常では、それでも、最後の手段の比較 > によって、先行する空白の有無も考慮に入れた行全体の比較が行われ、 > 等価な行に順序を付けることになるが、`--stable' オプションが指定 > されていると、それをしないので、等価な行は入力されたときの順序で > 出力される)。 > > stable をどう訳すかです。「入力順尊重、順序維持指向」なんてのも > 考えました。何がよいでしょう。stable (安定した) の意味がいくらかでも > 残るようにと、「現状維持指向」を選んだのですが。 うーん、こればかりはよくわかりません・・・・・ stable は、Longman 英英辞典によると、 steady and not likely to move or change とか a stable substance tends to stay in the same chemical といった意味なので、 今の案でよさそうな気がします。 last-resort comparison ですが「最後の比較手段」でもいいかもしれません。 > > `--parallel=N' > ... Note also that > using N threads increases the memory usage by a factor of log N. > > N 個のスレッドを使用すると、メモリの使用量が log N を係数として > 増加することにも、注意していただきたい。 > > "a factor of log N" は「log N を係数として」でよいでしょうか。 > こういうときの用語を知らないので。 「log N 倍になる」で通じると思いますがどうでしょうか。 > > 7.4 `comm' > > Forcing `comm' to process wrongly sorted input files containing > unpairable lines by specifying `--nocheck-order' is not guaranteed to > produce any particular output. The output will probably not correspond > with whatever you hoped it would be. > > 入力ファイルがきちんとソートされていず、しかも、対にならない行を > 含む場合に、`--nocheck-order' を指定して、そうしたファイルを `comm' で > 無理矢理処理しても、何か特定の結果をもたらすことは保証できない。おそらく > 出力は、期待に添わないものになるだろう。 > > "is not guaranteed to produce any particular output." の particular を > どう訳したらよいのか。「他の場合とは区別される出力」つまり「何らかの > 意味のある出力」ということなんでしょうが、「何か意味のある結果」とか > 「有意の結果」と言ってしまって、よいものかどうか。上の訳で意味が通じれば、 > それでよいのですが。 どんな結果になるのかわからない、と言いたいだけだと思います。 ヒントになっていれば幸いです。 > > 8.3 `join' > > `-e STRING' > Replace those output fields that are missing in the Input with > STRING. I.e., missing fields specified with the `-12jo' options. > > 入力では欠けているフィールドを、出力では STRING で補う。すなわち、 > オプション `-1', `-2', `-j', `-o' などを指定したときに、欠けている > フィールドがそれに当たる (訳注: たとえば、共通フィールドと区切り > 文字しかない行に対して、出力ではその行の空っぽのフィールドの位置に > STRING という文字列が入るということ)。 > > "specified with the `-12jo' options" と言っているのが、よくわかりません。 > とくに '-12j' についてそうです。"join -e "emp" ccc.txt ddd.txt" という > ような -1, -2, -j がない形でも、両ファイルに共通フィールドが存在すれば、 > missing fields に "emp" が入りますから。 -12jo options と複数形なので「-1, -2, -j, -o の場合」ということではないでしょうか。 -- Akihiro MOTOKI <amoto****@gmail*****>