bash中字符串的grep变量

时间:2017-03-10 09:59:47

标签: bash grep

我们想在以下$ test变量中搜索clid=*(*代表数字):

Welcome to the TeamSpeak 3 ServerQuery interface, type "help" for a list of commands and "help <command>" for information on a specific command.

error id=0 msg=ok

error id=0 msg=ok

cluid=something2384fjdfkj clid=1 name=me

error id=0 msg=ok

最终结果应为clid=1

3 个答案:

答案 0 :(得分:1)

使用以下egrep命令:

egrep -o '\bclid=[0-9]+\b' testfile

-o选项,告诉只打印匹配的子字符串

\b - 字边界

答案 1 :(得分:1)

这将打印clid后跟一个或多个数字:

grep -oP 'clid=\d+' inputfile

或者,如果输入来自变量,则:

echo  $test  |grep -oP 'clid=\d+'

答案 2 :(得分:0)

Bash所谓的 here strings 允许您在没有echo或管道的情况下将变量的内容提供给grep:

grep -Po 'clid=[0-9]+' <<< "$test"