【发布时间】:2021-04-17 13:55:41
【问题描述】:
我有一个这样的字符串:
line="06:13:41.817 INFO ProgressMeter - Traversal complete. Processed 46942 total variants in 2.2 minutes."
我想提取46942并放入一个变量。
我试过这个,但它只删除了已处理和总计。我该怎么做?
Var=$(echo $line | sed -e 's/Processed\(.*\)total/\1/')
【问题讨论】:
-
假设预期结果是
var=46942,choroba 的参数扩展答案可能是最快(也是最有效)的方法;如果 OP 出于某种原因希望保持sed方法(以及调用子 shell 的额外开销),则以下内容应该有效:var=$(sed -E 's/^.*Processed ([0-9]*) .*$/\1/g' <<< "${line}") ; echo "${var}"=>46942