-1

セミコロンで削除されたデータのリストがあります。

TR=P561;dir=o;day=sa;TI=16:30;stn=south station;Line=worcester

このファイルを取得して、TR値が複数回出現する行のみを印刷する必要があります。私は最初の出現とすべての重複をリストしたいと思います。

ありがとう

4

1 に答える 1

1

ファイルに対して 2 つのパスを作成する場合:

awk '!/TR=/ { next }         # Ignore lines that do not set TR
    {t=$0; sub( ".*TR=", "", t ); sub( ";.*", "", t ) } # Get TR value
    FNR == NR { a[t] +=1 }   # Count the number of times this value of TR seen
    FNR != NR && a[t] > 1    # print those lines whose TR value is seen more than once
' input-file input-file

これは、使用しているファイルを確認するために FNR をチェックする一般的な awk イディオムを使用します。input-file を引数として 2 回渡すことで、最初のパスで 1 つのコマンドを実行し、2 回目のパスで別のコマンドを実行する方法になります。

于 2012-09-22T20:28:13.413 に答える