正则表达式 – Grep模式匹配省略输出中的部分

前端之家收集整理的这篇文章主要介绍了正则表达式 – Grep模式匹配省略输出中的部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以只使用一个grep和 regexp组合来实现以下目的.说我有这样的文件

$cat f.txt
line 1 foo
line 2 boo
no match
line 3 blank
line X no match

我希望匹配以字线开头的所有行,后跟一个数字,但只显示之后的内容,因此匹配的部分为(.*).

$grep -E '^line [0-9]+(.*)' f.txt 
line 1 foo
line 2 boo
line 3 blank

你能说匹配但不显示这部分^ line [0-9]喜欢做grep -o’^ line [0-9]’的反转

所以我的预期输出看起来像这样

$grep -E ***__magic__*** f.txt 
foo
boo
blank

解决方法

你可以使用sed

~$cat 1.txt
line 1 foo
line 2 boo
no match
line 3 blank
line X no match


$grep -E '^line [0-9]' 1.txt | sed 's/^line [0-9] //'
foo
boo
blank

更新
……或不使用sed

$grep -E '^line [0-9]' 1.txt | grep -oE '[a-z]*$'
foo
boo
blank

猜你在找的正则表达式相关文章