我有一个文件,我希望将所有不以时间戳开头的行打开。我尝试使用以下正则表达式,但它不起作用:
cat myFile | grep '^(?!\[0-9\]$).*$'
我在这里可能做错的任何其他建议或事情?
答案 0 :(得分:8)
为什么不简单地使用像这样的grep -v选项来否定:
grep -v "<pattern>" file
假设您想要在shell脚本中grep所有未注释(在启动时没有#),然后您可以使用:
grep -v "^\s*#" file.sh
答案 1 :(得分:0)
您不需要not
运算符,只需使用grep,因为它最容易使用:查找模式:
grep '^[0-9]' myFile
答案 2 :(得分:0)
试试这个:
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:你使用双阴影让我不确定你是否想要时间戳行,或者你想要非时间戳行。