如果我有一堆行:
//mainHtml = "https://
mainHtml = "https:
//https:www.google.com
public String ydmlHtml = "https://remando
aasdfa dsfadsf a asdfasd fasd fsdafsdaf
现在我只想grep那些包含“https:”的行,但它们不应该以“//”开头
到目前为止,我有:
cat $javaFile | grep -e '\^\/ *https:*\'
其中$ javaFile是我想要查找的文件。 我的输出是一个空白。 请帮助:)
答案 0 :(得分:2)
您可以使用字符类来否定行的开头。我们使用-E
选项来使用ERE或扩展正则表达式。
grep -E '^[^/]{2}.*https' file
使用您的样本数据:
$ cat file
//mainHtml = "https://
mainHtml = "https:
//https:www.google.com
public String ydmlHtml = "https://remando
aasdfa dsfadsf a asdfasd fasd fsdafsdaf
$ grep -E '^[^/]{2}.*https' file
mainHtml = "https:
public String ydmlHtml = "https://remando
您也可以选择在没有-E
选项的情况下编写它:
grep '^[^/][^/].*https' file
答案 1 :(得分:1)
分两步:
grep -v '^//' | grep 'https:'
grep -v '^//'
删除以//
grep 'https:'
获取包含http: