是否可以只使用一个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