我想在列表中引号中的模式"List values are here:"
之后提取文本。我对此非常陌生。有人可以帮忙吗
List values are here: "list1 abc" "list2 test" "end of list"
我做了什么:
echo $va| awk '/List values are here:/ {print $1}' var="$va"
答案 0 :(得分:2)
您不需要使用awk
或sed
来执行此类任务,因为您只需要获取某行的某些部分。 grep
是您正在寻找的工具。
$ grep -oP '(?<=List values are here: ).*'
示例:强>
$ echo 'List values are here: "list1 abc" "list2 test" "end of list"' | grep -oP '(?<=List values are here: ).*'
"list1 abc" "list2 test" "end of list"
之后,您可以将结果分配给变量或用它做任何你想做的事。
<强>说明:强>
- -o
将更改grep
的默认行为,该行为输出整行以仅输出模式
- -P
是使用perl正则表达式
- (?<=List values are here: ).*
正则表达式在List values are here:
答案 1 :(得分:1)
$ echo "${val#*: }"
"list1 abc" "list2 test" "end of list"