grep openvpn.log 中的多个条目

grep openvpn.log 中的多个条目

我需要确定哪些客户端尝试连接到 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

第一:grep 'client[1-20]'不查找client后跟 1 到 20 之间的数字。它查找后跟、和client中的任何字符。使用一系列数字很麻烦,并且在此站点中多次处理。例如,参见012grepGrep 获取数字范围,查看 grep 或 egrep 年份范围为 1965-1996, ETC。

如果您只需要唯一的条目,请使用sort -usort | uniq

组合起来,类似于(假设用零填充数字):

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

相关内容