1

次のような 300MB のファイルがあります。

アイテム アイテム アイテム
アイテム アイテム
2 何か
……

基本的には、2 つの列がずっと下に向かっています。したがって、各行には 2 つのエントリがあります。列はこの文字(Alt +0009) で区切られており、これは「タブ」文字だと思います。行は、最初の列エントリによって英数字順にソートされます。

基本的に、このファイルで行う必要があるのは、次のように新しいファイルを作成することです。

  • 最初に、 2 番目の列エントリで行を英数字順に並べ替えます。
  • 次に、2 番目の列エントリが最初の列エントリの 1 つとしてファイルに表示されないすべての行を削除します。

たとえば、次のようになります。

AB
AC
AE
CA
EF

に行く

CA
AB
AC
AE
EF

そして最後に

CA
AC
AE

(この例では、列を区切るためにタブ文字の代わりにスペース文字を使用していることに注意してください。並べ替えようとしているファイルでは、列はタブ文字 (Alt +0009) で区切られています)

では、Unix コマンドを使用してこれを行うにはどうすればよいでしょうか。

4

1 に答える 1

2

最初の操作は、sortユーティリティを使用して (-kフラグを適切に設定して) 処理できます。2 番目の操作はより複雑で、何らかのカスタム スクリプトを実装する必要があります。

于 2012-04-16T04:09:36.887 に答える