GNU/Linux >> Linux Esercitazione >  >> Linux

Comando unix rapido per visualizzare righe specifiche nel mezzo di un file?

No, non c'è, i file non sono indirizzabili in linea.

Non esiste un modo a tempo costante per trovare l'inizio della riga n in un file di testo. Devi eseguire lo streaming del file e contare le nuove righe.

Usa lo strumento più semplice/veloce che hai per fare il lavoro. Per me, usando head rende molto ha più senso di grep , poiché quest'ultimo è molto più complicato. Non sto dicendo "grep è lento", in realtà non lo è, ma sarei sorpreso se fosse più veloce di head per questo caso. Sarebbe un bug in head , sostanzialmente.


con GNU-grep potresti semplicemente dire

grep --context=10 ...

# print line number 52
sed -n '52p' # method 1
sed '52!d' # method 2
sed '52q;d' # method 3,  efficient on large files 

metodo 3 efficiente su file di grandi dimensioni

modo più rapido per visualizzare righe specifiche


Ho trovato altre due soluzioni se conosci il numero di riga ma nient'altro (nessun grep possibile):

Supponendo che tu abbia bisogno delle righe da 20 a 40,

sed -n '20,40p;41q' file_name

o

awk 'FNR>=20 && FNR<=40' file_name

Quando si utilizza sed è più efficiente terminare l'elaborazione dopo aver stampato l'ultima riga piuttosto che continuare l'elaborazione fino alla fine del file. Ciò è particolarmente importante nel caso di file di grandi dimensioni e linee di stampa all'inizio. Per fare ciò, il sed Il comando precedente introduce l'istruzione 41q per interrompere l'elaborazione dopo la riga 41 perché nell'esempio siamo interessati solo alle righe 20-40. Dovrai cambiare il 41 in qualunque sia l'ultima riga che ti interessa, più uno.


Linux
  1. Utilizzo di Google Drive dalla riga di comando di Linux

  2. In che modo il comando Sed '1!g;h;$!d' inverte il contenuto di un file?

  3. Come visualizzare righe specifiche di un file nella riga di comando di Linux

  4. Comando wc Linux

  5. 4 strumenti per scaricare qualsiasi file utilizzando la riga di comando in Linux

Visualizza il contenuto di un file nella riga di comando di Linux

Come rimuovere le righe da un file usando il comando Sed

5 comandi per visualizzare il contenuto di un file nella riga di comando di Linux

Esercitazione Unix Sed:stampa di righe di file utilizzando l'indirizzo e i modelli

Tutorial Unix Sed:aggiungi, inserisci, sostituisci e conta righe di file

Come utilizzo le righe di un file come argomenti di un comando?