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.
Så 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:
-
grep -c ^b example
: Skriv ut tellingen for samsvarende linjer for linjer som begynner med bokstavenb
, og -
grep ^b example | cat -n
: send resultatet av grep-kommandoen til kattkommandoen og oppfør dem med linjenumre.-n
tvingercat
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!