Jag försöker lära mig kommandoraden bättre och undrar vad skillnaden mellan dessa två kommandon skulle vara.

grep -c ^b example 

och

grep ^b example| cat –n 

Kommentarer

  • Välkommen till Unix & Linux . Om du vill lära dig kommandoraden är det bästa sättet att experimentera genom att köra kommandona själv med olika inmatningsfiler. Frågorna bör visa lite forskningsinsats så jag ' Jag rekommenderar att du kontrollerar relevanta man-sidor för att ta reda på syftet med de olika alternativen. Man-sidor är inte ' t mest läsbara om du div id = ”50f7e05252″>

är nytt för Unix, så om du har några problem med att förstå det kan du redigera den här frågan för att göra den mer specifika (och användbara). Se Hur man frågar och ta gärna turnén .

  • (-1) Inte ens samma kommandon. Två orelaterade kommandon.
  • Försökte du köra kommandona?
  • Svar

    Tja , enligt till manualen , grep:

    söker efter MÖNSTER i varje FIL . Som standard skriver grep matchande rader.

    och med -c flagga:

    -c, --count 

    Dämpa normal utgång; skriv istället ut ett antal matchande rader för varje inmatningsfil.

    grep -c ^b example skriver ut antal (antal) rader som matchar mönstret, medan grep ^b example skriver ut raderna själva.

    Vad gäller cat, det beskrivs till

    sammanfoga filer och skriva ut på standardutgång

    och vad -n -flaggan gör är att:

    -n, --number 

    antal alla utgångsledningar

    Med tanke på röret och inget filnamn, cat läser från röret, så utgången är utdata från grep, med radnummer tillagda. Därav grep ^b example| cat –n skriver ut alla matchande rader, numrerade.


    Detta skiljer sig från grep -n ^b example, där grep lägger till li ne antal matcher. grep känner till radnumren för originalfilen, medan cat bara ser utdata från grep och numrerar raderna i enlighet därmed.

    Så, med tanke på inmatningsfilen

    $ 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: Mata ut antalet för matchande rader för rader som börjar med bokstaven b och

    2. grep ^b example | cat -n: skicka resultatet av grep-kommandot till kattkommandot och lista dem med radnummer. -n tvingar cat att lista dem tillsammans med radenummer.

    Exempel :

    exempel.txt med innehåll:

    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 från (1):

    3 

    Resultat från (2):

    1 media sound3 2 media sound1 3 media sound2 

    Kommentarer

    • Ja din rätt!

    Lämna ett svar

    Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *