2012-05-14 14 views
29

È grep in grado di fornire il numero di riga in cui viene visualizzata la parola specificata?Trova il numero di riga in cui appare una parola specifica con "grep"

Inoltre, è possibile utilizzare grep per cercare una parola che parte da una certa linea verso il basso?

+1

Credo che questo sarebbe più adatto per [SuperUser] (http://superuser.com/). –

+4

@dunsmoreb Non sono d'accordo. 'grep' è tanto uno strumento per programmatori quanto uno strumento per utenti esperti. –

+0

Io uso 'grep' tutto il tempo. Ma questa non è una domanda relativa alla programmazione. –

risposta

44

Utilizzare grep -n per ottenere il numero di riga di una corrispondenza.

Non penso che ci sia un modo per far partire grep su un determinato numero di linea. Per quello, usa sed. Ad esempio, per avviare alla linea 10 e stampare il numero di riga e la linea per le linee di corrispondenza, utilizzare:

sed -n '10,$ { /regex/ { =; p; } }' file 

per ottenere solo i numeri di riga, è possibile utilizzare

grep -n 'regex' | sed 's/^\([0-9]\+\):.*$/\1/' 

Oppure si potrebbe semplicemente utilizzare sed:

sed -n '/regex/=' file 

Combinando i due comandi sed, si ottiene:

sed -n '10,$ { /regex/= }' file 
+0

Ok, quindi grep -n restituirebbe la riga che contiene le parole AND il numero di riga. Esiste comunque il numero di linea SOLO? –

+0

@OneTwoThree Vedi le mie modifiche. –

+0

@OneTwoThree Questo lavoro ha funzionato? –

3

È possibile chiamare tail +[line number] [file] e pipe a grep -n che mostra il numero di riga:

tail +[line number] [file] | grep -n /regex/ 

L'unico problema con questo metodo è la linea numeri riportati dal grep -n sarà [line number] - 1 inferiore al numero di riga effettiva in [file].

1

oppure è possibile utilizzare

grep -n . file1 |tail -LineNumberToStartWith|grep regEx 

Questo si prenderà cura di numerare le righe nel file

grep -n . file1 

Questo stamperà l'ultimo-LineNumberToStartWith

tail -LineNumberToStartWith 

Ed infine verrà grep le linee desiderate (che includerà il numero di riga come in file originale)

Problemi correlati