我有变量包含这样的字符串:
zvq:0.001:0.006 hqp:0.006:0.01 pgvqa:0.1:0.01
我想找到并回应
zvq:0.001:0.006
或
hqp:0.006:0.01
或
pgvqa:0.1:0.01
使用zvq
或pgvqa
或hqp
模式,我该怎么做?
答案 0 :(得分:1)
试试这个:
var='zvq:0.001:0.006 hqp:0.006:0.01 pgvqa:0.1:0.01'
然后
$ grep -Eo 'zvq[^ ]+' <<< "$var"
zvq:0.001:0.006
和
$ grep -Eo 'pgvqa[^ ]+' <<< "$var"
pgvqa:0.1:0.01
和
$ grep -Eo 'hqp[^ ]+' <<< "$var"
hqp:0.006:0.01
如果您只是想根据空间剪切字符串,就像@janos在评论中所说:
echo "${var%% *}"
答案 1 :(得分:0)
echo $variable | tr ' ' '\n' | grep $pattern
或
echo $variable | tr ' ' '\n' | grep "^${pattern}:"
示例:
variable="zvq:0.001:0.006 hqp:0.006:0.01 pgvqa:0.1:0.01"
pattern="zvq"
echo $variable | tr ' ' '\n' | grep $pattern
zvq:0.001:0.006