it-swarm-eu.dev

Gatto Unix a partire da linea

Qual è il modo migliore per stampare da un file che inizia da una linea specifica (numero grande come 70000). Qualcosa di simile a:

cat --line=70000 <file>
38
vonhogen

Dai un'occhiata alla coda, più precisamente, è --lines = + N cambia:

tail --lines=+100 <file>
58
Svend

Il modo più ovvio è tail. La sintassi potrebbe essere leggermente diversa a seconda del sistema operativo in uso:

tail -n +70000

Se non riesci a far funzionare tail, puoi usare sed, ma potrebbe finire più lentamente:

sed -pe '1,69999d'
21
Chris Johnsen

Se invece di un numero di riga è necessario iniziare l'elencazione sulla riga contenente un determinato $phrase, provare quanto segue.

more -1000 +/"$phrase" yourfilename | sed '1,4d'

Il -1000 elencherà continuamente il testo per un massimo di 1000 linee; puoi cambiarlo se necessario. Il comando sed taglierà le prime 4 righe di output, che sono state automaticamente inserite da more, contenente una riga vuota, il messaggio "... saltando" e le due righe che precedono la linea di partenza desiderata. Immagino che questo possa variare a seconda del tuo sistema.

2
AlohaUnixFan

È possibile utilizzare NR parametro con il comando awk :

cat <file> | awk '{if (NR>=7000) print}'
2
Gefolge