これ回答ファイルから同じ行を削除するいくつかの良い解決策がありますが、私の場合は、重複した行にタイムスタンプがあるため動作しませんでした。
重複を決定するとき、awkに行の最初の26文字を無視するように指示できますか?
例:
[Fri Oct 31 20:27:05 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:10 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:13 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:16 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:21 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:22 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:23 2014] The Brown Cow Jumped Over The Moon
[Fri Oct 31 20:27:24 2014] The Brown Cow Jumped Over The Moon
なります
[Fri Oct 31 20:27:24 2014] The Brown Cow Jumped Over The Moon
(最も最近のタイムスタンプを維持してください)
ベストアンサー1
uniq
適切なオプションを使用できます-f
。
uniq -f 4 input.txt
からman uniq
:
-f, --skip-fields=N
avoid comparing the first N fields
実際、これは最初の行を表示します。
[Fri Oct 31 20:27:05 2014] The Brown Cow Jumped Over The Moon
これが問題なら、次のようにすることができます。
tac input.txt | uniq -f 4
またはそうではありませんが、あなたのサポートがtac
ある場合:tail
-r
tail -r input.txt | uniq -f 4