Come ottenere la prima riga di un file in uno script bash?


249

Devo inserire in una variabile bash la prima riga di un file. Immagino che sia con il comando grep, ma è un modo per limitare il numero di righe?

Risposte:


396

headprende le prime righe da un file e il -nparametro può essere usato per specificare quante righe devono essere estratte:

line=$(head -n 1 filename)

3
Significativamente più sovraccarico readdell'approccio. $()si stacca da una subshell e l'utilizzo di un comando esterno ( qualsiasi comando esterno) significa che stai chiamando execve(), invocando il linker e il caricatore (se utilizza librerie condivise, che di solito è il caso), ecc.
Charles Duffy

2
Potrebbe essere ancora più breve:line="$(head -1 FILENAME)"
nikolay

3
E anche:line=`head -1 FILENAME`
Shai Alon,

I backtick intorno head...all'open shell sono una subshell come $()fa ?.
Jaime Hablutzel,

@JaimeHablutzel Sì, sono la stessa cosa, anche se personalmente trovo che la $()sintassi sia più facile da vedere e apprezzo la chiarezza sull'assoluta terseness. gnu.org/software/bash/manual/html_node/…
Joseph Sikorski
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.