無秩序な線の識別

無秩序な線の識別

出力を生成するプロセスがあります。最大(タイムスタンプ)フィールドに基づいてアルファベット順にソートしますが、行が誤った順序で出力されることがあります。

2014-08-14 15:42:02.019220203 ok
2014-08-14 15:42:03.523164367 ok
2014-08-14 15:42:04.525655832 ok
2014-08-14 15:42:06.523324269 ok
2014-08-14 15:42:05.930966407 oops
2014-08-14 15:42:07.643347946 ok
2014-08-14 15:42:07.567283110 oops

データが「ソートされていない」すべての場所を識別する方法は?

予想出力(または類似):

2014-08-14 15:42:05.930966407 oops
2014-08-14 15:42:07.567283110 oops

データが生成されると(たとえば、パイプラインで)動作するソリューションが必要です。ファイル全体でのみ機能すると、使い勝手が悪くなります。sort --check理想的ですが、出力のみ可能です。最初混乱するのは、完全なリストが必要であるということです。

ベストアンサー1

awk 'NR>1 && $0"" < last; {last=$0}'

前の行以前にソートされた行を印刷します。これは語彙比較を強制します(並べ替えが$0""出力でseq 10見つかる109)。

おすすめ記事