我们想在以下$ 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
。
答案 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"