logo

Hoe u alle bestanden kunt vinden die specifieke tekst (tekenreeks) bevatten op Linux

Stel dat u op zoek bent naar een bestand in Linux, maar dat u de naam ervan bent vergeten. U onthoudt alleen de inhoud van het bestand. Hoe vindt u het bestand in dit geval? Welnu, er zijn enkele handige methoden die je zullen helpen een bestand te vinden dat een specifieke tekst (of tekenreeks) bevat in Linux. De string moet door de gebruiker worden opgegeven. Laten we dus eens kijken naar de methoden:

Methoden om alle bestanden te vinden die specifieke tekst (tekenreeks) bevatten op Linux

Methode 1: grep-opdracht

grep-opdracht in Linux dat wordt gebruikt om te zoeken naar bestanden die een specifieke tekst of tekenreeks bevatten. Standaard toont het ons de regels in de bestanden die de specifieke tekst bevatten. Als we de optie -l eraan toevoegen, toont de opdracht ons alle bestanden die de specifieke tekst bevatten.



to string-methode in Java

Voorbeeld:

Stel dat we een map hebben die twee bestanden bevat met de namen file1.txt en file2.txt.

Inhoud van bestand1.txt:



This line contains text.>

Inhoud van bestand2.txt:

You should learn Data Structures & Algorithms.>

Nu zullen we de opdracht grep gebruiken met de optie -l om naar tekst te zoeken in bepaalde bestanden in de huidige map. Zie het volgende voorbeeld:



Uit het bovenstaande voorbeeld kan duidelijk worden gezegd dat het grep-commando met succes de gegeven string in file1.txt heeft gevonden. Als gevolg hiervan werd de bestandsnaam op het scherm weergegeven.

We kunnen ook de optie -i gebruiken om grep te vertellen de case te negeren. Kijk naar het volgende voorbeeld:

Hierboven hebben we eerst het vorige commando gebruikt, maar de gegeven string is Tekst. Omdat file1.txt tekst bevat en geen tekst, wordt er geen rekening mee gehouden. Hier wordt de zoekbewerking uitgevoerd, rekening houdend met de zaak. Vervolgens gebruikten we de optie -i. Als gevolg hiervan wordt de hoofdlettergebruik genegeerd en komt de gegeven string overeen met de string die file1.txt bevat. Daarom wordt de bestandsnaam op het scherm weergegeven.

Een andere variatie is het gebruik van de optie -r. Het stelt grep voor om recursief naar de gegeven string in de huidige map en zijn submappen te zoeken. Kijk naar het onderstaande voorbeeld:

shell-script uitvoerbaar maken

file1.txt en file2.txt bevinden zich in de map Bestanden, niet in de huidige map, d.w.z. op het bureaublad. Dus als we de optie -r niet gebruiken, worden er geen bestanden met overeenkomende tekenreeksen gevonden omdat ze niet in de huidige map voorkomen. Maar we gebruikten de optie -r en lieten ook de bestandsnamen weg. Als gevolg hiervan zoekt grep naar overeenkomende tekenreeksen in niet alleen de huidige map, maar ook in de submappen ervan. Daarom wordt file1.txt gevonden en op het scherm weergegeven.

Methode 2: De combinatie van find- en grep-opdracht

vinden is een ander nuttig commando in Linux. We zullen find combineren met de optie -type f om naar bestanden te zoeken en de optie -exec om grep toe te passen op de gevonden bestanden. Kijk naar het volgende voorbeeld:

Het is duidelijk dat de zoekbewerking file1.txt vindt omdat het de overeenkomende tekenreeks bevat. Daarom wordt de bestandsnaam op het scherm weergegeven.

Methode 3: Zoek bestanden met specifieke tekst met mc

We kunnen ook naar bestanden zoeken met Midnight Commander (mc). Open de applicatie en druk op Alt + Shift + ? om het dialoogvenster Bestand zoeken te openen. Bovenaan ziet u een Startvak. Typ in het vak het pad waar de bestanden zich bevinden. Typ vervolgens onder het inhoudsvak de tekenreeks waarin u wilt zoeken. In ons geval hebben we naar tekst gezocht in de map Bestanden:

Hieronder kunt u duidelijk zien dat de zoekactie met succes file1.txt heeft gevonden, dat de overeenkomende string bevat.

kern Java-interviewvragen

Methode 4: ripgrep-opdracht

ripgrep (geschreven als rg) is een commando dat kan worden gebruikt als alternatief voor het grep-commando. De implementatie vindt u hieronder:

file1.txt wordt gevonden en daarom wordt de bestandsnaam op het scherm weergegeven.

Java opent een bestand

Methode 5: ack-opdracht

Nog een ander commando dat we kunnen gebruiken is het ack-commando. Hier is de implementatie:

file1.txt is succesvol gevonden en op het scherm weergegeven.