Jeg prøver at lære kommandolinjen bedre og spekulerer på, hvad forskellen mellem disse to kommandoer 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 bedste måde at eksperimentere ved at køre kommandoerne selv ved hjælp af forskellige inputfiler. Spørgsmål skal vise noget forskningsindsats, så jeg ' råd til at kontrollere de relevante mandsider for at finde ud af formålet med de forskellige muligheder. Man-sider er ikke ' t mest læsbare, hvis du ' er nyt i Unix, så hvis du har problemer med at forstå det, kan du redigere dette spørgsmål for at gøre det mere specifikt (og nyttigt). Se Sådan spørger du og er velkommen til at tage -turen .
- (-1) Ikke engang de samme kommandoer. To ikke-relaterede kommandoer.
- Forsøgte du at køre kommandoerne?
Svar
Nå ifølge til manualen , grep
:
søger efter MØNSTER i hver FIL . Som standard udskriver
grep
de matchende linjer.
og med -c
flag:
-c, --count
Undertryk normal output; i stedet udskrive et antal matchende linjer for hver inputfil.
Så grep -c ^b example
udskriver antal (antal) linjer, der matcher mønsteret, mens grep ^b example
udskriver linjerne selv.
Hvad angår cat
, det er beskrevet til
sammenkædning af filer og udskrivning på standard output
og hvad -n
flag gør er at:
-n, --number
nummer alle outputlinjer
Givet røret og ikke filnavne, cat
læser fra røret, så output er output fra grep
, med linjenumre tilføjet. Derfor grep ^b example| cat –n
udskriver alle matchende linjer, nummererede.
Dette er forskelligt fra grep -n ^b example
, hvor grep
tilføjer li ne numrene på kampene. grep
kender linjenumrene i den originale fil, mens cat
kun ser output fra grep
og nummererer linjerne i overensstemmelse hermed.
Så givet inputfilen
$ 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
: Udfør antallet af matchende linjer for linjer, der begynder med bogstavetb
, og -
grep ^b example | cat -n
: overfør resultatet af grep-kommandoen til cat-kommandoen og anfør dem med linjenumre.-n
tvingercat
til at liste dem sammen med linjenumre.
Eksempel :
eksempel.txt med indhold:
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 ret!