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: