Snažím se lépe naučit příkazový řádek a přemýšlím, jaký by byl rozdíl mezi těmito dvěma příkazy.

grep -c ^b example 

a

grep ^b example| cat –n 

Komentáře

  • Vítejte v Unix a Linux . Pokud se chcete naučit příkazový řádek, nejlepším způsobem je experimentovat spuštěním příkazů sami pomocí různých vstupních souborů. Otázky by měly ukázat určité výzkumné úsilí, takže ' Doporučujeme zkontrolovat příslušné manuálové stránky, abyste zjistili účel různých možností. Manové stránky nejsou ' nejčtenější, pokud ' jste v Unixu noví, takže pokud máte nějaké problémy s jeho porozuměním, můžete upravit tuto otázku, aby byla ještě více konkrétní (a užitečné). Viz Jak se zeptat a neváhejte se zúčastnit prohlídky .
  • (-1) Ani ne stejné příkazy. Dva nesouvisející příkazy.
  • Zkusili jste spustit příkazy?

Odpovědět

No , podle příručky , grep:

vyhledává VZOR v každém SOUBORU . Ve výchozím nastavení grep vytiskne odpovídající řádky.

a s -c příznak:

-c, --count 

Potlačit normální výstup; místo toho vytiskněte počet shodných řádků pro každý vstupní soubor.

Takže grep -c ^b example vytiskne počet (počet) řádků odpovídajících vzoru, zatímco grep ^b example tiskne samotné řádky.

Pokud jde o cat, je popsáno

spojit soubory a tisknout na standardní výstup

a co příznak -n dělá:

-n, --number 

očíslovat všechny výstupní řádky

Vzhledem k kanálu a ne názvy souborů, cat čte z kanálu, takže výstup je výstupem grep s přidanými čísly řádků. Proto grep ^b example| cat –n vytiskne všechny odpovídající řádky očíslované.


To se liší od grep -n ^b example, kde grep přidává li ne počet zápasů. grep zná čísla řádků původního souboru, zatímco cat vidí pouze výstup grep a odpovídajícím způsobem očísluje řádky.

Takže vzhledem k vstupnímu souboru

$ cat example bar foo basf 

Máme:

$ grep -c ^b example 2 $ grep ^b example |cat -n 1 bar 2 basf $ grep -n ^b example 1:bar 3:basf 

Odpověď

Ok příkaz:

  1. grep -c ^b example: Výstup počtu odpovídajících řádků pro řádky, které začínají písmenem b a

  2. grep ^b example | cat -n: předejte výsledek příkazu grep příkazu cat a uveďte je v seznamu s čísly řádků. -n nutí cat vypsat je spolu s čísly řádků.

Příklad :

example.txt s obsahem:

media sound3 media sound1 media sound2 find sound -type f -name sound[0-9] -printf "media %f\n" > file.txt find sound -type f -name sound[0-9] -exec bash -c "echo media bash >> file.txt" {} \; find sound -type f -name sound[0-9] -exec bash -c "f="{}"; echo media $( basename ${f}) >> file.txt" \; 

Výsledek z (1):

3 

Výsledek z (2):

1 media sound3 2 media sound1 3 media sound2 

Komentáře

  • Ano vaše právo!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *