文字列に対して2つのファイルをgrepしようとしています。
これらのファイルは
/confluent/logs/server.log
/confluent/logs/server.log.1
しかし、私たちは他のファイルを次のように一致させたくありません。
/confluent/logs/server.log.2
/confluent/logs/server.log.3
など
そのため、代わりに次のようにdouble grepを実行してください。
grep log.retention.bytes /confluent/logs/server.log
grep log.retention.bytes /confluent/logs/server.log.1
log.retention.bytes
同時に、2つのファイルの一致を探したいです。
私たちはしようとします
grep log.retention.bytes /opt/mcspace/confluent/logs/server.log.*[1]
しかし、これは間違っています。
ベストアンサー1
grep log.retention.bytes server.log{,.1}
ログエントリを時系列(追加)に保つには、ファイルの順序を逆にする必要があります。
grep log.retention.bytes server.log{.1,}
もちろん、これは次のとおりです。
grep log.retention.bytes server.log.1 server.log
中括弧拡張は、grep
コマンドを実行する前にシェルによって実行されるためです。
また、zsh
シェルを使用すると、簡単に自動ワイルドカードを使用できます。パターンに一致する最後のN個のファイルそして:
grep log.retention.bytes server.log*(Om[-2,-1])
Om
つまり時間に基づいて降順に並べ替え[-2,-1]
最後の2行を取得します。より多くのファイルを検索して手動で入力したくない場合は、このヒントを覚えておくことをお勧めします。