Linux 如何在bash中从两个模式之间提取字符串
我从bash开始,我想在一个.txt文件中找到我的ip,并对其进行分析。 以下是部分文件的示例: “目录inet:192.****Difus:” 我想到的路径是搜索“inet:”和“”之间的所有文本。到目前为止,我最大的方法是使用“grep inet”获取整个线路,但我不知道如何仅获取ip,而不是使用ip获取整个线路 谢谢大家! 救援人员:Linux 如何在bash中从两个模式之间提取字符串,linux,bash,grep,Linux,Bash,Grep,我从bash开始,我想在一个.txt文件中找到我的ip,并对其进行分析。 以下是部分文件的示例: “目录inet:192.****Difus:” 我想到的路径是搜索“inet:”和“”之间的所有文本。到目前为止,我最大的方法是使用“grep inet”获取整个线路,但我不知道如何仅获取ip,而不是使用ip获取整个线路 谢谢大家! 救援人员: perl -ne 'print $1, "\n" if /inet:([^ ]+)/' -n逐行读取输入 [^]匹配的字符不是空格 +表示字符必须出现一
perl -ne 'print $1, "\n" if /inet:([^ ]+)/'
逐行读取输入李>-n
匹配的字符不是空格[^]
表示字符必须出现一次或多次+
创建一个捕获组,第一个捕获组被引用为(…)
$1
awk
和grep
。下面的解决方案可能会有所帮助。
既然您在Linux上,您可以利用GNU
grep
的-o
和-p
选项:
grep -oP '(?<= inet:)[^ ]+' file.txt
grep-oP'(?请避免。
$ grep -oP '(?<= inet:)[^ ]+' <<<'Direc. inet:192.****** Difus.:'
192.******