openvpn.logの複数のエントリをgrep

openvpn.logの複数のエントリをgrep

openvpnに接続しようとしているクライアントを決定する必要があります

$ grep -e 'client[1-20]' openvpn.log | sed 's/^.*client/client/'

私にください

client16
client16
client12_pool_defined = DISABLED
client12'/var/run/openvpn.pid'
client13
client15
client16
client16

重複エントリを削除し、client12、client13などを残す方法をご存知ですか?

答え1

まず:1から20までの数字の後に数字が続くものをgrep 'client[1-20]'見つけません。 、およびそれに続くすべての文字をclient見つけます。client一連の数字で作業するのは面倒で、このサイトで何度も処理されます。例えば012grepGrep は数値範囲を取得します。年の範囲が 1965-1996 である grep または egrep を確認してください。、等。

固有の項目だけが必要な場合、sort -uまたはを使用してくださいsort | uniq

結合すると、次のようになります(数字がゼロで埋められていると仮定)。

grep -Eo 'client([01][1-9]|20)' | sort -u

関連情報