Grep 从文件中提取IP地址

Grep 从文件中提取IP地址,grep,Grep,我有一个日志文件,其中行与行之间有字符串,如“true client ip=[1.1.1.1]”。我想写一个grep/sed命令来从文件中提取IP。提取此输出并将其写入另一个文件的最佳方法是什么 cache control=[无缓存,最大年龄=0],原点=[https://www.example.com],pragma=[no cache],te=[chunked;q=1.0],真正的客户端ip=[108.81.148.189],用户代理=[Mozilla/5.0(Windows NT 10.0

我有一个日志文件,其中行与行之间有字符串,如“true client ip=[1.1.1.1]”。我想写一个grep/sed命令来从文件中提取IP。提取此输出并将其写入另一个文件的最佳方法是什么


cache control=[无缓存,最大年龄=0],原点=[https://www.example.com],pragma=[no cache],te=[chunked;q=1.0],真正的客户端ip=[108.81.148.189],用户代理=[Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299]
您可以使用以下表达式:

([0-9]{1,3}\.){3}[0-9]{1,3}
您可以将grep命令的输出写入新文件,如下所示:

 grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' yourlogfile.txt >> ipfile.txt

第二种选择是使用Perl方言,并在
true client IP
字段后使用lookback提取IP

grep -Po '(?<=true-client-ip=\[)[^\]]+' yourlogfile.txt >> ipfile.txt

grep-Po'(?也许sed更合适?@codingyo您能告诉我我的解决方案是否适合您吗?