我有一个文件,我希望grep所有行不以时间戳开始。我试着用下面的正则表达式,但它没有工作:非运算符在正则表达式
cat myFile | grep '^(?!\[0-9\]$).*$'
其他任何建议或东西,我可能是错在这里做什么?
我有一个文件,我希望grep所有行不以时间戳开始。我试着用下面的正则表达式,但它没有工作:非运算符在正则表达式
cat myFile | grep '^(?!\[0-9\]$).*$'
其他任何建议或东西,我可能是错在这里做什么?
为什么不直接使用grep -v选项这样的否定:
grep -v "<pattern>" file
比方说,你想用grep在那些没有评论 shell脚本的所有行(没有#在启动)那么你可以使用:
grep -v "^\s*#" file.sh
这里唯一的*正确*答案:不要试图否定模式,否定匹配结果。 +1 – 2012-02-06 19:25:54
你不需要not
操作,只是使用grep,因为它是最容易使用:发现一个规律:
grep '^[0-9]' myFile
试试这个:
cat myFile | grep '^\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d'
这里假设你的时间戳是模式dddd-dd-dd dd:dd:dd
,但如果它是其他内容,则将其更改为与时间戳匹配的内容。
注意:除非你使用某种CMD链的,grep pattern file
是一个简单的语法
BTW:你使用双负的让我不确定,如果你想的时间戳线或你想要的非时间戳行。
*没有工作* ...烟从电脑里出来了吗? – 2012-02-06 19:12:20
它属于http://unix.stackexchange.com/,但在off主题选项之间找不到它。投票支持http://superuser.com/ – BlackBear 2012-02-06 19:19:31