414 votes

Obtenir le numéro de ligne tout en utilisant grep

Bonjour, je suis à l'aide de grep récursive de rechercher des fichiers pour une chaîne, et tous les fichiers correspondants et les lignes contenant la chaîne de caractères d'impression sur le terminal. Mais est-il possible d'obtenir les numéros de ligne de ces lignes trop??

ex: actuellement, ce que je reçois est - /var/www/file.php: $options = "this.target", mais ce que je cherche à obtenir est - /var/www/file.php: 1142 $options = "this.target";, le bien - 1142 serait le numéro de la ligne contenant la chaîne de caractères.

La syntaxe que j'utilise grep récursivement sudo grep -r 'pattern' '/var/www/file.php'

Hey encore une question est, comment pouvons-nous obtenir des résultats pour ne pas égal à un motif. Comme tous les fichiers, mais pas ceux qui ont une certaine chaîne de caractères?

618voto

Miro A. Points 1679
grep -nr SEARCHTERM file1 file2 ...

165voto

lorenzo Points 366

Les numéros de ligne sont imprimés avec des grep -n:

grep -n pattern file.txt

Pour obtenir uniquement le numéro de la ligne (sans la mise en correspondance de la ligne), on peut utiliser cut:

grep -n pattern file.txt | cut -d : -f 1

Les lignes ne contenant une modèle sont imprimés avec des grep -v:

grep -v pattern file.txt

29voto

Cloud Falls Points 79

Si vous voulez que le numéro de la ligne ce faire:

grep -n ° fichier de Modèle.ext | gawk '{print $1}' FS=":"

Exemple:

$ grep -nr 9780545460262 EXT20130410.txt | gawk '{print $1}' FS=":" 
48793
52285
54023

10voto

emilio Points 1
grep -A20 -B20 pattern file.txt

Modèle de recherche et de montrer 20 lignes avant et après modèle

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X