ファイル内に複数のID(82244956
)があるログファイル(file.log
)があります。 file.log
は、コマンドを使用して作成されています:grepユニークな出現
gzip -cd /opt/log.gz | grep "JBOSS1-1" >> ~/file.log
例:
2012-04-10 09:01:18,196 LOG (7ysdhsdjfhsdhjkwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:02:18,196 LOG (24343sdjjkidgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:03:18,196 LOG (6744443jfhsdgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
2012-04-10 09:04:18,196 LOG (7ysdhsd5677dgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
同様に、我々は、異なるIDと10000行を持っている(ただし、各IDは2〜3回繰り返す例の上部と下部の2行で。この例はそれぞれid 82244956と82244957で繰り返されています)。私たちは、すなわち固有のIDに基づいて、結果セット(マッチしたIDSから任意の行を)必要があります。
awk ' { arr[$1]=$0 } END { for (key in arr) { print arr[key] } } ' file.log >> final-report.log
それとも、より良い方法だろう:私は成功していないものをLinux上でawkプログラムにしようとしたが、
2012-04-10 09:01:18,196 LOG (7ysdhsdjfhsdhjkwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244956
2012-04-10 09:03:18,196 LOG (6744443jfhsdgyuwe:IN) JBOSS1-1 (RP-yedgdh5567) [PayPalWeb] Fetch data with id: 82244957
異なるIDを持つ
file.log
を作成することができます。
どうすれば変更できますか?
ソート順は重要ですか?そうでない場合は、ファイルを 'sort'でパイプし、' uniq'で再度パイプして一意の行を与えます。いくつかのパラメータを渡して、並べ替えたいフィールドを指定する必要があります。 –