Aanbevolen, 2024

Bewerkers keuze

Een woord met grep uitsluiten

Ontwikkeling Een woord voor vrede, Orde van Malta België

Ontwikkeling Een woord voor vrede, Orde van Malta België

Inhoudsopgave:

Anonim

Het grep-opdrachtregelprogramma is enorm handig voor het zoeken in tekstgegevens naar lijnen en fragmenten die overeenkomen met een gedefinieerde tekenreeks, teken, woord of reguliere expressie. Hoewel het meeste gebruik van grep is voor het sorteren van gegevens voor syntaxisovereenkomsten, wat als u in plaats daarvan een woord of tekenreeks met grep wilt uitsluiten ? Lijnovereenkomsten uitsluiten met grep is net zo nuttig als overeenkomsten zoeken en afdrukken in grep, dus laten we eens kijken hoe stringovereenkomsten worden uitgesloten en woorden met grep worden uitgesloten.

Uiteraard wil je wat opdrachtregelervaring en blootstelling aan grep hebben om dit nuttig te vinden. Als u mee wilt gaan, kunt u de Terminal-toepassing openen en zelf uitproberen. Aangezien grep een agnostisch hulpprogramma voor het besturingssysteem is, kunt u de truc voor uitsluiten gebruiken in Mac OS, Linux, unix of wat dan ook dat grep gebruikt.

Hoe een enkel woord met grep uit te sluiten

De meest eenvoudige manier om lijnen met een string of syntaxisovereenkomst uit te sluiten, is door grep en de vlag -v te gebruiken.

Laten we bijvoorbeeld zeggen dat we cat gebruiken om een ​​bestand af te drukken op de opdrachtregel, maar we willen alle regels uitsluiten die de term "ThisWord" bevatten, dan ziet de syntaxis er als volgt uit:

cat example.txt | grep -v "ThisWord"

De uitvoer zal het tekstbestand example.txt zijn, maar exclusief elke regel die een stringovereenkomst bevat met “ThisWord”.

U kunt grep ook rechtstreeks in bestanden gebruiken en lijnovereenkomsten uitsluiten op basis van woorden of syntaxis, zoals:

grep -v "ThisWord" example.txt

Gebruik wat het beste werkt voor uw specifieke workflow.

Hoe meerdere tekenreeksen of woorden met grep uit te sluiten

Nu je weet hoe je overeenkomsten voor een enkel woord kunt uitsluiten, gaat de volgende voor de hand liggende vraag over het uitsluiten van meerdere woorden met grep. Dat is net zo eenvoudig, en er zijn een paar verschillende manieren om dit te bereiken met behulp van de vlag -v en de vlag -e.

Laten we eerst het bovenstaande voorbeeld nemen van het gebruik van cat in een bestand dat is doorgestuurd naar grep en alle regels uitsluiten die overeenkomen met twee woorden; "Word1" en "Word2", dit zou er als volgt uitzien:

cat example.txt | grep -v -e "Word1" -e "Word2"

Regels met "Word1" of "Word2" worden uitgesloten van de afgedrukte resultaten.

Je kunt grep ook net als voorheen rechtstreeks op bestanden gebruiken:

grep -v -e "Word1" -e "Word2" example.txt

Een andere benadering is om te scheiden wat moet worden uitgesloten met grep door een pijp te gebruiken om elke match te scheiden, zoals hier:

grep -Ev "word1|word2" example.txt

Als u een van deze opties op een voorbeeldtekstbestand uitprobeert, zult u zien dat de uitvoer identiek is, ongeacht de aanpak die u gebruikt, elk met uitzondering van regels die de beoogde woordgroepen, syntaxis, woorden of tekstovereenkomst bevatten.

Geweldig, laat me een nuttig voorbeeld zien van het uitsluiten van gegevens met grep!

Voor een praktisch voorbeeld dat geavanceerde Mac-gebruikers nuttig kunnen vinden, kunnen we grep-uitsluiting gebruiken bij het afdrukken en doorzoeken van opdrachtregelgeschiedenis om eerder uitgevoerde opdrachten te vinden om standaardovereenkomsten te vinden, maar enkele geselecteerde standaardreeksen uitsluiten van de uitvoer.

In het voorbeeld hier zullen we commandogeschiedenis afdrukken voor standaard stringovereenkomsten, maar sluiten we alles uit dat te maken heeft met iTunes zoals gedefinieerd door "com.apple.itunes":

history |grep "defaults write" |grep -v -e "com.apple.itunes"

Dus als je meegaat, zou dit alle historische uitvoeringen van de opdracht "standaard schrijven" melden, maar alles uitsluiten dat betrekking had op de iTunes-toepassing. Leuk he?

Als je bijzonder handig gebruik hebt om wedstrijden met grep uit te sluiten, deel ze dan met ons in de reacties hieronder! En als je dit artikel leuk vond, zou je bijna zeker graag door onze vele opdrachtregelartikelen willen bladeren, waar nog veel meer te leren is!

Top