Ik “probeer de opdrachtregel beter te leren en vraag me af wat het verschil tussen deze twee opdrachten zou zijn.

grep -c ^b example 

en

grep ^b example| cat –n 

Reacties

  • Welkom bij Unix en Linux . Als je de opdrachtregel wilt leren, is de beste manier om te experimenteren door de opdrachten zelf uit te voeren met verschillende invoerbestanden. Vragen zouden enige onderzoeksinspanning moeten opleveren, dus ik ' raadt u aan de relevante man-paginas te controleren om het doel van de verschillende opties te achterhalen. Man-paginas zijn ' niet het meest leesbaar als u ' nieuw bij Unix, dus als je problemen hebt om het te begrijpen, kun je deze vraag bewerken om er meer specifiek (en nuttig). Zie Hoe te vragen en voel je vrij om de rondleiding te volgen.
  • (-1) Zelfs niet dezelfde commandos. Twee niet-gerelateerde commandos.
  • Heb je geprobeerd de commandos uit te voeren?

Antwoord

Nou , volgens naar de handleiding , grep:

zoekt naar PATROON in elk FILE . Standaard drukt grep de overeenkomende regels af.

en met de -c vlag:

-c, --count 

Normale uitvoer onderdrukken; print in plaats daarvan een aantal overeenkomende regels voor elk invoerbestand.

Dus grep -c ^b example drukt de aantal (aantal) regels dat overeenkomt met het patroon, terwijl grep ^b example de regels zelf afdrukt.

Wat betreft cat, het wordt beschreven

bestanden samenvoegen en afdrukken op de standaard output

en wat de -n vlag doet, is:

-n, --number 

nummer alle uitvoerregels

Gegeven de pijp en nee bestandsnamen, cat leest uit de pipe, dus de uitvoer is de uitvoer van grep, met toegevoegde regelnummers. Vandaar grep ^b example| cat –n drukt alle overeenkomende regels af, genummerd.


Dit verschilt van grep -n ^b example, waarbij grep voegt de li ne nummers van de wedstrijden. grep kent de regelnummers van het originele bestand, terwijl cat alleen de uitvoer ziet van grep en nummert de regels dienovereenkomstig.

Dus gezien het invoerbestand

$ cat example bar foo basf 

We hebben:

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

Antwoord

Ok commando:

  1. grep -c ^b example: Voer het aantal overeenkomende regels uit voor regels die beginnen met de letter b, en

  2. grep ^b example | cat -n: geef het resultaat van het grep-commando door aan het cat-commando en geef ze een lijst met regelnummers. De -n dwingt cat om ze samen met regelnummers te vermelden.

Voorbeeld :

example.txt met inhoud:

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" \; 

Resultaat van (1):

3 

Resultaat van (2):

1 media sound3 2 media sound1 3 media sound2 

Reacties

  • Ja uw recht!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *