我是Grep和正则表达式的新手。从下面的文本输出,我如何获得列表组。我只想要“公司,它和”有趣的家伙“”。这个组列表各不相同。
所以基本上,我正在寻找“Groups:”之后和“Licenses:”之前的所有行。也不要在括号之间有任何东西(例如,我想删除<company@domain.com>
)
答案 0 :(得分:2)
这个命令会这样做,
sed -n '/Groups:/,/Licenses/p' sample |sed '1d'|sed '$d' |cut -f1 -d'<'
这是解释,
sed -n '/Groups:/,/Licenses/p' sample
在上面的正则表达式中提到的两种模式之间从文件样本中提取文本。
sed '1d'
删除包含“Groups:”关键字的行。
sed '$d'
删除包含“许可证”关键字的行。
cut -f1 -d'<'
最终提取OP提到的模式。
<强>输出:强>
$ sed -n '/Groups:/,/Licenses/p' sample |sed '1d'|sed '$d' |cut -f1 -d'<'
company
it
fun guys