GNU/Linux >> Znalost Linux >  >> Linux

Získejte první řádek výstupu příkazu shellu

Ano, to je jeden způsob, jak získat první řádek výstupu z příkazu.

Pokud příkaz vydá cokoliv se standardní chybou, kterou byste chtěli zachytit stejným způsobem, musíte přesměrovat standardní chybu příkazu na standardní výstupní proud:

utility 2>&1 | head -n 1

Existuje mnoho dalších způsobů, jak zachytit první řádek, včetně sed 1q (ukončit po prvním řádku), sed -n 1p (vytiskněte pouze první řádek, ale přečtěte si vše), awk 'FNR == 1' (vytiskněte pouze první řádek, ale znovu si přečtěte vše) atd.


Použil bych:

awk 'FNR <= 1' file_*.txt

Jak zdůrazňuje @Kusalananda, existuje mnoho způsobů, jak zachytit první řádek v příkazovém řádku, ale pomocí head -n 1 nemusí být nejlepší volbou při použití zástupných znaků, protože vytiskne další informace. Změna 'FNR == i' na 'FNR <= i' umožňuje získat první řádky i.

Například, pokud máte n souborů s názvem soubor_1.txt, ... soubor_n.txt:

awk 'FNR <= 1' file_*.txt

hello
...
bye

Ale s head zástupné znaky vytisknou název souboru:

head -1 file_*.txt

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

Linux
  1. Jak odstranit první/poslední „n“ řádky z výstupu příkazu v prostředí Shell?

  2. Ukládání výstupu příkazu do proměnné Shell?

  3. Jak se analyzují argumenty vzdáleného příkazového řádku Ssh?

  1. Parametry příkazového řádku ve skriptech shellu

  2. získat prvních 5 znaků z každého řádku v shell skriptu

  3. Jak zachovat konce řádků při ukládání výstupu příkazu do proměnné?

  1. Seřadit pomocí řazení na příkazovém řádku

  2. Aliasy příkazového řádku v prostředí Linux

  3. Připojte konec řádku k výstupu příkazu