Linux-ontwikkelaars volgen de filosofie van het maken van kleine programma's die één taak uitvoeren en deze goed doen. Neem bijvoorbeeld Linux-tekstverwerkingstools, ze zijn lichtgewicht en hebben modulaire functionaliteit. Hoewel deze tekstmanipulatietools verschillen in complexiteit en functionaliteit, zijn ze handig in een omgeving waar de grafische gebruikersinterface niet beschikbaar is.
Het artikel behandelt de beste Linux-tools om bestanden te lezen en reguliere expressies te gebruiken om bewerkingen op de geselecteerde tekst uit te voeren. Het behandelt ook hun meest elementaire functionaliteit en voorbeelden voor een beter begrip.
1. grep
grep is een Linux-hulpprogramma voor het manipuleren van tekst dat zoekt naar een reeks tekens of patronen die bekend staan als reguliere expressies in een bestand of tekst. De grep-tool behoort tot de familie van hulpprogramma's die egrep, fgrep en grep bevatten, waarvan fgrep de snelste van allemaal is, terwijl grep de gemakkelijkste is.
De algemene syntaxis voor het gebruik van grep is als volgt:
grep -opties string bestandsnaam
Als u bijvoorbeeld naar het woord "root" wilt zoeken in het /etc/passwd-bestand:
grep root /etc/passwd
Enkele standaardvoorbeelden van opdrachtregels om aan de slag te gaan zijn:
Opties | Voorbeeld | Beschrijving |
---|---|---|
-C | grep -c |
Tel het aantal regels waarin de string bestaat |
-I | grep -i |
Voer een hoofdletterongevoelige zoekopdracht uit voor de opgegeven tekenreeks |
-O | grep -o |
Drukt alleen de overeenkomende tekenreeks af |
-l | grep -l "passwd" | Drukt bestandsnamen af in de huidige map die overeenkomen met het patroon |
-N | grep -n |
Drukt het regelnummer af langs de regel die de opgegeven tekenreeks bevat |
string1|string2 | grep "string1|string2" bestand | Zoek en print meerdere strings uit een bestand |
Op dezelfde manier kunt u de ^ metateken met het grep-commando om alle overeenkomende tekenreeksen weer te geven die met bepaalde tekens beginnen.
Het volgende commando stuurt bijvoorbeeld de uitvoer van het env-commando als invoer naar grep en geeft variabelen weer die beginnen met "HO":
env | grep ^HO
Verwant: Praktische voorbeelden van de Linux Grep-opdrachten
2. awk
awk is een krachtige scripttaal en een opdrachtregelprogramma voor tekstmanipulatie dat regel voor regel scans kan uitvoeren en regels met patronen kan vergelijken. De basissyntaxis van de opdracht awk is een actie die is gedefinieerd tussen een enkel aanhalingsteken en accolades gevolgd door de bestandsnaam.
awk '{action}' bestandsnaam
awk '{patroon; action}' bestandsnaam
Het hulpprogramma doorzoekt het bestand met behulp van reguliere expressies en voert de functie uit die is gedefinieerd in de actieparameter. awk voert het script op elke regel uit als u geen patroon instelt, zoals hieronder wordt weergegeven:
awk '{print $1}' awk_examples.txt
...waar $1 geeft het eerste veld van de. weer awk_examples.txt het dossier.
De volgende opdracht voert de afdrukfunctie uit op het gegeven patroon door het tweede veld te vervangen "Wereld" met "Alice," en geeft de hele regel weer ($0):
echo "Hallo wereld" | awk '{$2="Alice"; print $0}'
Uitgang:
Hallo Alice
Op dezelfde manier kunt u de functie druk $0 af van het bovenstaande commando om de. te emuleren grep functionaliteit.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. soort
sort is een ander Linux-opdrachtregelprogramma waarmee u de inhoud van het opgegeven tekstbestand in een gesorteerde indeling kunt weergeven. U kunt bijvoorbeeld de uitvoer van het awk-commando als invoer naar het sorteerhulpprogramma doorsturen als volgt:
awk '{print $1}' awk_examples.txt | sorteren > sort_text.txt
kat sort_text.txt
Uitgang:
Verwant: Hoe tekstbestanden in Linux te sorteren met behulp van sort
4. sed
sed of stream-editor neemt invoer als een stroom tekens en voert filtering en teksttransformaties (verwijderen, vervangen en vervangen) uit op de opgegeven tekst.
U kunt het in een script gebruiken en bestanden niet-interactief bewerken. Daarom is het meest elementaire doel van het hulpprogramma de vervanging van tekenreeksen/tekens. De algemene syntaxis is:
sed 's/string/substitution/option' bestand
Maak een bestand met willekeurige zinnen om de werking van dit hulpprogramma te oefenen en te begrijpen.
Laten we het voorkomen van het woord "twee" op elke regel van het bestand met "2" de... gebruiken -G vlag voor wereldwijde vervanging, als volgt:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
Gebruik op dezelfde manier de -D vlag om een specifieke regel uit het bestand te verwijderen:
sed '2d' sed_examples.txt
U kunt de tekenreeks ook vervangen door een regelnummer op te geven (4 s/twee/2/p) en alleen de vervangen regel als volgt afdrukken:
sed -n '4 s/two/2/p' sed_examples2.txt
De -N vlag in de bovenstaande opdracht schakelt het automatisch afdrukken van de invoerstroom naar de uitvoer uit. U kunt deze optie in uw voordeel gebruiken om de grep-hulpprogrammafunctionaliteit te vervangen door sed.
U kunt bijvoorbeeld de bovenstaande opdracht wijzigen door alleen een regex-patroon op te nemen /two/p zodanig dat de -P flag zal alleen de regels naar de standaard uitvoerstroom afdrukken.
sed -n '/two/p' sed_examples2.txt
Verwant: Deze 10 sed-voorbeelden maken je een Linux Power User
5. snee
De cut is een ander hulpprogramma voor de opdrachtregel dat delen van tekst uit een regel of bestand knipt/extraheert. Het snijdt de tekst op basis van een gespecificeerd veld, teken of bytepositie en stuurt het resultaat naar de standaarduitvoer.
Het hulpprogramma heeft de volgende syntaxis:
snee het dossier
Gebruik de -B optie om sectie of inhoud te knippen met behulp van een opgegeven byte of een reeks bytes:
knippen -b 1 knippen_voorbeelden.txt
Gebruik de -C vlag om tekst te extraheren door de posities van tekens op te geven:
knippen -c 1,3,5 knippen_voorbeelden.txt
Ten slotte kunt u ook tekst extraheren door velden op te geven met de -F optie en -D voor spatie of veldscheidingsteken:
cut -d " " -f 1 cut_examples.txt
Hier is de lijst met bereiken met voorbeelden en beschrijvingen die je met het personage kunt gebruiken -C en byte -B opties:
Bereik | Voorbeeld | Beschrijving |
---|---|---|
N- | knippen -c 7- bestandsnaam | Extraheer karakter van n-de integer tot het einde van de regel |
n-m | knippen -b 7-15 bestandsnaam | Extracten van geheel getal n-m van elke regel uit het invoerbestand |
-m | knippen -c -7 bestandsnaam | Extraheert regels vanaf m tot het einde van de regel |
Merk op dat u de bereiken voor tekstextractie niet kunt definiëren met behulp van het veld -F optie.
Tekst manipuleren met Linux-opdrachten
Linux biedt veel programma's en hulpmiddelen voor het omgaan met en werken rond bestanden of tekst. Het is misschien niet nodig om ze allemaal te leren, omdat je het gat gemakkelijk met een ander kunt vullen als je er eenmaal een goede grip op hebt, zoals het gebruik van sed als grep of awk als grep, maar dit kan niet voor elke tool gelden.
Bovendien hebben Linux-commando's een steile leercurve, maar als je eenmaal de vaardigheid hebt ontwikkeld, kunnen ze zeer nuttig en effectief blijken te zijn in het leven van elke Linux-gebruiker, vooral een systeembeheerder.
Moe van de oude en saaie terminal-app die vooraf is geïnstalleerd op Linux? Bekijk deze acht terminal-apps die uw workflow zullen verbeteren.
Lees volgende
- Linux
- Linux-opdrachten

Rumaisa is freelance schrijver bij MUO. Ze heeft veel hoeden gedragen, van wiskundige tot liefhebber van informatiebeveiliging, en werkt nu als SOC-analist. Haar interesses omvatten lezen en schrijven over nieuwe technologieën, Linux-distributies en alles wat met informatiebeveiliging te maken heeft.
Abonneer op onze nieuwsbrief
Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!
Klik hier om je te abonneren