Jeg prøver å lære kommandolinjen bedre og lurer på hva forskjellen mellom disse to kommandoene ville være.

grep -c ^b example 

og

grep ^b example| cat –n 

Kommentarer

  • Velkommen til Unix & Linux . Hvis du vil lære kommandolinjen, er den beste måten å eksperimentere ved å kjøre kommandoene selv ved hjelp av forskjellige inndatafiler. Spørsmål bør vise litt forskningsinnsats så jeg ' råd å sjekke de aktuelle man-sidene for å finne ut formålet med de forskjellige alternativene. Man-sidene er ikke ' t mest lesbare hvis du ' er nytt for Unix, så hvis du har noen problemer med å forstå det, kan du redigere dette spørsmålet for å gjøre det mer spesifikk (og nyttig). Se Hvordan spørre og ta gjerne turen .
  • (-1) Ikke engang de samme kommandoene. To ikke-relaterte kommandoer.
  • Prøvde du å kjøre kommandoene?

Svar

Vel , i henhold til til manualen , grep:

søker etter MØNSTER i hver FIL . Som standard skriver grep de samsvarende linjene.

og med -c flagg:

-c, --count 

Undertrykk normal utgang; skriv i stedet ut et antall samsvarende linjer for hver inndatafil.

grep -c ^b example skriver ut antall (antall) linjer som samsvarer med mønsteret, mens grep ^b example skriver ut linjene selv.

Når det gjelder cat, det er beskrevet til

sammenkoble filer og skrive ut på standard utgang

og hva -n flagget gjør er å:

-n, --number 

nummer alle utgangslinjene

Gitt røret og nei filnavn, cat leser fra røret, så utgangen er utdata fra grep, med linjenumre lagt til. Derfor grep ^b example| cat –n skriver ut alle samsvarende linjer, nummererte.


Dette er forskjellig fra grep -n ^b example, der grep legger til li ne nummer på kampene. grep kjenner linjenumrene til den originale filen, mens cat bare ser utdataene til grep og nummererer linjene tilsvarende.

Så gitt inndatafilen

$ cat example bar foo basf 

Vi har:

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

Svar

Ok kommando:

  1. grep -c ^b example: Skriv ut tellingen for samsvarende linjer for linjer som begynner med bokstaven b, og

  2. grep ^b example | cat -n: send resultatet av grep-kommandoen til kattkommandoen og oppfør dem med linjenumre. -n tvinger cat til å liste dem sammen med linjenumre.

Eksempel :

eksempel.txt med innhold:

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

Resultat fra (1):

3 

Resultat fra (2):

1 media sound3 2 media sound1 3 media sound2 

Kommentarer

  • Ja din rett!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *