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:
-
grep -c ^b example
: Výstup počtu odpovídajících řádků pro řádky, které začínají písmenemb
a -
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!