0

私は空白で区切られた2つのフィールドである行を持つファイルを持っています:

fieldA fieldX
fieldB fieldX
fieldC fieldX
fieldD fieldX
fieldE fieldX
fieldA fieldY
fieldB fieldY
fieldC fieldY

2 列目にタイプの最初の N 行を取得する必要があります。私がしていることは sort -k2 | uniq -f1 --all-repeated=prepend | grep "^$" -A3 、どちらが機能するはずですが、とuniq -f1は異なる何かを与えてくれますuniq -f1 --all-repeated=prepend。prepend は一意のチャンクの前に空行のみを追加する必要があることを正しく理解していますか?

または、より良いアプローチがありますか?

ありがとう

4

2 に答える 2

1

いいえ、あなたはプリペンドについて完全に正しくありません。

prepend複製uniqの各チャンクの前に空のファイルを印刷するように指示します。オプションを追加することで、重複のある行、つまり複数回発生する行のみを印刷するように指示していることに注意してください。のように、1 回だけ出現する行は出力されません。--all-repeateduniquniq -f1

たとえば、ファイルに別の行を追加するとfieldA fieldZ、オプションがあれば出力されません--all-repeated。これは、ファイル内で 1 回しか発生しないためです。

于 2013-04-05T16:35:56.710 に答える