Overzicht
grep staat voor Global Regular Expression Print en gebruikt reguliere expressies om tekst te doorzoeken en overeenkomende regels weer te geven. De optie `-c` retourneert alleen het aantal overeenkomende regels als een getal, in plaats van de overeenkomende regels zelf weer te geven.
Belangrijkste kenmerken
- Geeft alleen het aantal regels weer dat overeenkomt met een specifiek patroon
- Flexibel patroon zoeken met ondersteuning voor reguliere expressies
- Kan worden gecombineerd met verschillende zoekcriteria zoals hoofdlettergevoeligheid en omgekeerde matching
- Ondersteunt het zoeken in meerdere bestanden of bestanden binnen mappen
Belangrijkste opties
Dit zijn de belangrijkste opties die vaak worden gebruikt met grep -c of die van invloed zijn op de telresultaten.
Telling/Zoekcontrole
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`grep` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Dit zijn verschillende gebruiksvoorbeelden van het grep -c commando.
Aantal regels tellen dat overeenkomt met een patroon in een specifiek bestand
grep -c "error" sample.log
Telt het aantal regels in het bestand sample.log dat de tekenreeks 'error' bevat.
Aantal regels tellen dat overeenkomt met een patroon, hoofdlettergevoeligheid negerend
grep -ci "warning" sample.log
Telt het aantal regels in het bestand sample.log dat overeenkomt met 'warning' of 'Warning', ongeacht hoofdletters en kleine letters.
Aantal regels tellen dat overeenkomt met een patroon in meerdere bestanden
grep -c "keyword" *.txt
Telt het aantal regels dat 'keyword' bevat in alle .txt-bestanden in de huidige map, per bestand.
Aantal regels tellen dat recursief overeenkomt met een patroon in bestanden binnen een map
grep -rc "function" .
Telt het aantal regels dat de tekenreeks 'function' bevat in alle bestanden in de huidige map en alle submappen.
Aantal regels tellen dat niet overeenkomt met een patroon
grep -cv "success" sample.log
Telt het aantal regels in het bestand sample.log dat de tekenreeks 'success' niet bevat.
Tellen van regels na invoer via pipe
ls -l | grep -c "root"
Telt het aantal regels in de uitvoer van het commando ls -l dat 'root' bevat.
Tips & Aandachtspunten
Dit zijn tips en aandachtspunten om het grep -c commando effectiever te gebruiken.
Verschil tussen grep -c en wc -l
grep -c telt alleen de regels die overeenkomen met het patroon, terwijl `grep "pattern" file | wc -l` de uitvoer van `grep` (alle overeenkomende regels) ontvangt en het aantal regels telt. In de meeste gevallen is `grep -c` efficiënter. De laatste methode kan echter nuttig zijn als er aanvullende verwerking nodig is voor de door grep gefilterde regels.
- grep -c: Telt alleen overeenkomende regels. Sneller en directer.
- grep ... | wc -l: Telt alle regels die door grep worden uitgevoerd. Nuttig voor aanvullende pipeline-verwerking.
Gebruik van reguliere expressies
grep ondersteunt krachtige reguliere expressies. Naast specifieke woorden kunt u complexe patronen doorzoeken en tellen met behulp van het begin (`^`), einde (`$`), specifieke tekensets (`[abc]`) en herhalingen (`*`, `+`) van een regel. Voeg de optie `-E` toe om uitgebreide reguliere expressies te gebruiken.
Bestandsnaam uitvoercontrole
Bij het doorzoeken van meerdere bestanden geeft de optie `-c` standaard de telresultaten weer met de bestandsnaam ervoor. Als u de bestandsnamen wilt weglaten en alleen het totaal wilt verkrijgen, kunt u dit doen door `awk` te combineren, zoals `grep -c "pattern" file1 file2 | awk '{s+=$1} END {print s}'`, of door het te gebruiken zoals `find . -name "*.log" -exec grep -c "pattern" {} + | awk '{s+=$1} END {print s}'`.