1

ログファイルからいくつかの行をgrepするためにbashスクリプトを使用しています。このログ ファイルの基本的な形式は次のとおりです。

フィールド 1: 値 1、フィールド 2 = 値 2、フィールド 3 = 値 3、フィールド 4 = 値 4、値 5、値 6、フィールド 5 = 値 7

field1: value1 が同一であるが、他の情報の一部が同じか異なる行がある場合があります。これらの行を除外して、同じ "field1: value1" タプルを持つものの最初のインスタンスのみを抽出したいと思います。

特に単純なものを見つけることができれば、素晴らしいコマンドラインのワンライナーをお勧めします。私は間違いなくそれをbashスクリプトに入れたいと思っています。これは Linux 上にあるため、すべてのコマンドライン ツールを利用できます。

ありがとう!

4

1 に答える 1

5

使用awk:

awk -F, '!arr[$1]++ { print }' LOGFILE

このawkプログラムは配列を使用して、特定の 'field1: value1` 文字列が表示された回数をカウントしますが、最初に受信した行のみを出力します。

于 2013-06-14T13:28:26.577 に答える