これら2つのファイルをgrepして他のファイルを除外する方法

これら2つのファイルをgrepして他のファイルを除外する方法

文字列に対して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行を取得します。より多くのファイルを検索して手動で入力したくない場合は、このヒントを覚えておくことをお勧めします。

おすすめ記事