GNU/Linux >> Tutoriels Linux >  >> Linux

Pourquoi l'ajout d'un côlon casse-t-il ce modèle Grep ?

J'ai exécuté une recherche avec grep , mais cela ne fonctionne pas comme je m'y attendais. J'ai les lignes suivantes dans un fichier :

blacklists/redirector/domains:needyoutube.com
lacklists/redirector/domains:openyoutube.com
blacklists/redirector/domains:proxy-youtube.com
blacklists/redirector/domains:proxytoyoutube.com
blacklists/redirector/domains:streamyoutube.com
blacklists/redirector/domains:unblockyoutube.com

Quand je cours :

grep ':youtube.com'

Je n'obtiens aucun résultat. Les travaux suivants :

grep 'youtube.com'

Comment puis-je échapper aux deux-points (: ) ? La barre oblique inverse (grep '\:youtube.com') ne fonctionne pas. J'utilise RHEL 5, grep (GNU grep) 2.5.1.

Mise à jour :
J'ai oublié les entrées que je voulais grep, celles-ci existent également :

./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br

Je veux juste obtenir les champs qui contiennent le nom de domaine exact. Je veux donc que les listes noires soient liées à youtube.com, j'utilise donc ":youtube.com".

Dans la liste ci-dessus (youtube.com, youtube.com.br), je ne devrais obtenir que youtube.com, mais je n'obtiens rien.

Je n'ai pas été assez clair, désolé.

Réponse acceptée :

On dirait que "listes noires/redirecteur/domaines" est en fait un nom de fichier, et non une partie du contenu du fichier. grep ':youtube.com' fonctionne très bien :

% cat test.txt
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br
blacklists/redirector/domains:needyoutube.com
lacklists/redirector/domains:openyoutube.com
blacklists/redirector/domains:proxy-youtube.com
blacklists/redirector/domains:proxytoyoutube.com
blacklists/redirector/domains:streamyoutube.com
blacklists/redirector/domains:unblockyoutube.com
% grep ':youtube.com' test.txt
./blacklists/movies/domains:youtube.com
./blacklists/movies/domains:youtube.com.br

Si vous souhaitez rechercher de manière récursive des lignes commençant par "youtube.com", utilisez grep -R '^youtube\.com' path/to/dir


Linux
  1. Pourquoi ce pipeline shell sort-il ?

  2. Pourquoi ce code plante-t-il avec la randomisation d'adresse activée ?

  3. Pourquoi cette regex ne fonctionne-t-elle pas sous Linux ?

  4. Que signifie \b dans un modèle grep ?

  5. Pourquoi cette commande ldapadd se termine-t-elle avec une erreur de syntaxe non valide ?

Grep - Pourquoi les crochets dans le modèle Grep suppriment-ils le processus Grep des résultats Ps?

Pourquoi Sudo ignore-t-il les alias ?

Qu'est-ce que cette statistique de processus indique ?

Pourquoi `exit &` ne fonctionne pas ?

Pourquoi Ping -f agit-il comme ça ?

Qu'est-ce que la commande Grep sous Linux ? Pourquoi est-il utilisé et comment fonctionne-t-il ?