linux - comando sed



Ottieni la prima riga dell'output di un comando shell (2)

Io userei:

awk 'FNR <= 1' file_*.txt

Come sottolinea @Kusalananda, ci sono molti modi per catturare la prima riga nella riga di comando ma usare la head -n 1 potrebbe non essere l'opzione migliore quando si usano i caratteri jolly poiché stamperà ulteriori informazioni. La modifica di 'FNR == i' in 'FNR <= i' consente di ottenere le prime linee i.

Ad esempio, se hai n file denominati file_1.txt, ... file_n.txt:

awk 'FNR <= 1' file_*.txt

hello
...
bye

Ma con i caratteri jolly in head stampa il nome del file:

head -1 file_*.txt

==> file_1.csv <==
hello
...
==> file_n.csv <==
bye

Durante il tentativo di leggere il numero di versione di vim , ottengo molte linee aggiuntive che devo ignorare. Ho provato a leggere il manuale di head e ho provato il seguente comando:

vim --version | head -n 1

Voglio sapere se questo è l'approccio corretto?


Sì, questo è un modo per ottenere la prima riga di output da un comando.

Se il comando restituisce qualcosa a un errore standard che si desidera acquisire nello stesso modo, è necessario reindirizzare l'errore standard del comando al flusso di output standard:

utility 2>&1 | head -n 1

Ci sono molti altri modi per catturare la prima riga, tra cui sed 1q (uscire dopo la prima riga), sed -n 1p (stampare solo la prima riga, ma leggere tutto), awk 'FNR == 1' (stampa solo la prima riga, ma ancora, leggi tutto) ecc.





shell