【发布时间】:2011-11-19 02:11:15
【问题描述】:
我正在使用 grep,我想在我指定的字符串之后获取数据。我想在我指定的内容之后获取字符串。如果我 grep“标签:”我得到“标签:蓝色标签:红色标签:绿色”。我只想得到颜色。如果我说 grep -o 我会得到所有的标签。如果我说 -l 它说(标准输出)。有什么想法吗?
【问题讨论】:
我正在使用 grep,我想在我指定的字符串之后获取数据。我想在我指定的内容之后获取字符串。如果我 grep“标签:”我得到“标签:蓝色标签:红色标签:绿色”。我只想得到颜色。如果我说 grep -o 我会得到所有的标签。如果我说 -l 它说(标准输出)。有什么想法吗?
【问题讨论】:
您可以使用sed 消除单词标签,例如
grep "label:" | sed s/label://g
【讨论】:
grep 是useless; sed -n '/label:/s///gp'
Grep 是一个只能用于过滤文本行的工具。要执行更复杂的操作,您可能需要更复杂的工具。
例如,sed 可以在这里使用:
sed 's/.*label: \(.*\)/\1/'
这样的文字...
label: blue
llabel: red
label: green label: yellow
变成这样:
blue
red
yellow
如您所见,此sed 命令仅返回搜索模式之后的内容,并且不支持每行多个匹配项。
【讨论】: