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:
-
grep -c ^b example
: Voer het aantal overeenkomende regels uit voor regels die beginnen met de letterb
, en -
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
dwingtcat
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!