在单词字符和逗号的模式之后grep for contents

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单词字符和逗号的模式之后grep for contents相关的知识,希望对你有一定的参考价值。

echo  "this is a test:foo,bar,baz']" | grep -o -E "test:.*" | awk -F: '{ print $2 }'
foo,bar,baz']

我得到']印在最后,如何只打印字符和普通,没有别的,在这种情况下,我只需要提取foo,bar,baz

答案

您可以使用单个awk

echo "this is a test:foo,bar,baz']" | awk -F 'test:' '{sub(/[^,[:alnum:]].*/, "", $2); print $2}'

foo,bar,baz

或者,您可以使用单个sed

echo  "this is a test:foo,bar,baz']" | sed 's/.*test://; s/[^,[:alnum:]].*//'

foo,bar,baz
另一答案
echo "this is a test:foo,bar,baz']"| awk -F: '{sub(/baz../,"baz"); print $2}'

输出

福,酒吧,闪电

另一答案

使用gnu grep perl正则表达式

$ echo  "this is a test:foo,bar,baz']" | grep -oP "(?<=test:)(w,*)+"
foo,bar,baz

以上是关于在单词字符和逗号的模式之后grep for contents的主要内容,如果未能解决你的问题,请参考以下文章

正则表达式拆分逗号前面没有特定单词

在 Excel 2010 中的第一个单词之后和最后一个单词之前插入逗号

多个模式的一个参数 - grep

在 PHP 中使用 preg_grep() 查找字符串之前或之后的字符

grep 访问多行,查找两个模式之间的所有单词

shell:正则表达式和文本处理