在 bash 中的匹配词之后在一行中打印特定字符串
Print specific string in a line after matched word in bash
情况
有一个名为 test 的文件,包含以下文本:
this is the first line
version=1.2.3.4
this is the third line
如何仅通过 bash 打印:
1.2.3.4
注意:我想一直打印到行尾 "version="
之后的内容,而不是搜索 1.2.3.4
谢谢
使用 GNU grep
:
grep -Po '^version=\K.*'
-P
启用 PCRE 正则表达式,-o
用于仅显示匹配的内容而不是整行,并且 \K
元字符指定不显示前面的内容。
使用sed
:
sed -n 's/^version=\(.*\)//p'
-n
禁用自动打印,然后替换命令将通过捕获组仅用其末尾替换 "version=[...]" 行。替换仅在第二行有效,这会触发 p
指令打印(转换后的)行。
您可以使用:
grep version file | cut -d\= -f2
情况 有一个名为 test 的文件,包含以下文本:
this is the first line
version=1.2.3.4
this is the third line
如何仅通过 bash 打印:
1.2.3.4
注意:我想一直打印到行尾 "version="
之后的内容,而不是搜索 1.2.3.4
谢谢
使用 GNU grep
:
grep -Po '^version=\K.*'
-P
启用 PCRE 正则表达式,-o
用于仅显示匹配的内容而不是整行,并且 \K
元字符指定不显示前面的内容。
使用sed
:
sed -n 's/^version=\(.*\)//p'
-n
禁用自动打印,然后替换命令将通过捕获组仅用其末尾替换 "version=[...]" 行。替换仅在第二行有效,这会触发 p
指令打印(转换后的)行。
您可以使用:
grep version file | cut -d\= -f2