grep第三个关键字,由'-';
在linux中显示grep第三个关键字,由'-';,grep,cut,Grep,Cut,在linux中显示hostname命令后,我的主机名详细信息如下 my-host-test-db-10001.dns.biz.xyz.com my-host-test2-db-10002.dns.biz.xyz.com my-host-test3-db-10003.dns.biz.xyz.com 我想从上面的这些字符串中获取第三个字符串(test/test2/test3)。如何实现它?除了使用cut更简单的解决方案外,您还可以使用更灵活的grep: hostname | grep -Po '^
hostname
命令后,我的主机名详细信息如下
my-host-test-db-10001.dns.biz.xyz.com
my-host-test2-db-10002.dns.biz.xyz.com
my-host-test3-db-10003.dns.biz.xyz.com
我想从上面的这些字符串中获取第三个字符串(test/test2/test3)。如何实现它?除了使用
cut
更简单的解决方案外,您还可以使用更灵活的grep
:
hostname | grep -Po '^[^-]+-[^-]+-\K[^-]+'
例如:
grep -Po '^[^-]+-[^-]+-\K[^-]+' <<< 'my-host-test2-db-10002.dns.biz.xyz.com'
在这里,GNU使用以下选项:-P
:使用Perl正则表达式。-o
:仅打印匹配项(每行1个匹配项),而不是整行
\K
:使正则表达式引擎“保留”在\K
之前匹配的所有内容,而不将其包含在匹配中。具体来说,在打印匹配项时忽略正则表达式的前面部分
另请参见:hostname | cut-d'-'-f3
test2