如何使用前导空格解析行

时间:2015-10-26 02:02:12

标签: regex bash grep

我是Grep和正则表达式的新手。从下面的文本输出,我如何获得列表组。我只想要“公司,它和”有趣的家伙“”。这个组列表各不相同。

所以基本上,我正在寻找“Groups:”之后和“Licenses:”之前的所有行。也不要在括号之间有任何东西(例如,我想删除<company@domain.com>

enter image description here

1 个答案:

答案 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