grep pour ignorer le premier caractère

Si j’ai un tas de lignes qui ont:

//mainHtml = "https:// mainHtml = "https: //https:www.google.com public Ssortingng ydmlHtml = "https://remando aasdfa dsfadsf a asdfasd fasd fsdafsdaf 

Maintenant, je veux seulement grep que les lignes qui ont “https:”, mais elles ne doivent PAS commencer par “//”

Jusqu’à présent j’ai:

 cat $javaFile | grep -e '\^\/ *https:*\' 

où $ javaFile est le fichier que je veux rechercher les mots. Ma sortie est vide. S’il vous plaît aider 🙂

Vous pouvez utiliser la classe de caractères pour annuler le début des lignes. Nous utilisons l’option -E pour utiliser ERE ou l’expression régulière étendue.

 grep -E '^[^/]{2}.*https' file 

Avec vos exemples de données:

 $ cat file //mainHtml = "https:// mainHtml = "https: //https:www.google.com public Ssortingng ydmlHtml = "https://remando aasdfa dsfadsf a asdfasd fasd fsdafsdaf 

 $ grep -E '^[^/]{2}.*https' file mainHtml = "https: public Ssortingng ydmlHtml = "https://remando 

Vous pouvez également choisir de l’écrire sans l’option -E en disant:

 grep '^[^/][^/].*https' file 

En deux étapes:

 grep -v '^//' | grep 'https:' 
  • grep -v '^//' supprime les lignes commençant par //
  • grep 'https:' obtient les lignes contenant http: