Linux-udviklere følger filosofien om at skabe små programmer, der udfører én opgave og gør det godt. Tag Linux tekstbehandlingsværktøjer som et eksempel, de er lette og har modulær funktionalitet. Selvom disse tekstmanipulationsværktøjer adskiller sig i kompleksitet og funktionalitet, er de nyttige i et miljø, hvor den grafiske brugergrænseflade ikke er tilgængelig.
Artiklen dækker de bedste Linux-værktøjer til at læse filer og bruge regulære udtryk til at udføre operationer på den valgte tekst. Den dækker også deres mest grundlæggende funktionalitet og eksempler for bedre forståelse.
1. grep
grep er et Linux-tekstmanipulerende værktøj, der søger efter en streng af tegn eller mønstre kendt som regulære udtryk i en fil eller tekst. Grep-værktøjet tilhører familien af hjælpeprogrammer, der inkluderer egrep, fgrep og grep, blandt hvilke fgrep er den hurtigste af alle, mens grep er den nemmeste.
Den generelle syntaks for brug af grep er som følger:
grep -options streng filnavn
For eksempel at søge efter ordet "rod" i filen /etc/passwd:
grep root /etc/passwd
Nogle standard kommandolinjeeksempler for at komme i gang er:
Muligheder | Eksempel | Beskrivelse |
---|---|---|
-c | grep -c |
Tæl antallet af linjer, hvori strengen findes |
-jeg | grep -i |
Udfør en søgning uden forskel på store og små bogstaver efter den angivne streng |
-o | grep -o |
Udskriver kun den matchede streng |
-l | grep -l "passwd" | Udskriver filnavne i den aktuelle mappe, der matcher mønsteret |
-n | grep -n |
Udskriver linjenummeret langs linjen, der indeholder den angivne streng |
streng1|streng2 | grep "string1|string2" fil | Find og udskriv flere strenge fra en fil |
På samme måde kan du bruge ^ metategn med grep-kommandoen for at vise alle de matchende strenge, der begynder med bestemte tegn.
For eksempel sender følgende kommando env-kommandooutputtet som input til grep og viser variabler, der begynder med "HO":
env | grep ^HO
Relaterede: Praktiske eksempler på Linux Grep-kommandoer
2. awk
awk er et kraftfuldt scriptsprog og et kommandolinje-tekstmanipulationsværktøj, der kan udføre linje-for-linje-scanninger og sammenligne linjer med mønstre. Den grundlæggende syntaks for awk-kommandoen er en handling defineret mellem et enkelt anførselstegn og krøllede parenteser efterfulgt af filnavnet.
awk '{action}' filnavn
awk '{mønster; action}' filnavn
Værktøjet søger i filen ved hjælp af regulære udtryk og udfører den funktion, der er defineret i handlingsparameteren. awk udfører scriptet på hver linje, hvis du ikke angiver et mønster, som vist nedenfor:
awk '{print $1}' awk_examples.txt
...hvor $1 viser det første felt i awk_examples.txt fil.
Den følgende kommando udfører printfunktionen på det givne mønster ved at erstatte det andet felt "Verden"med"Alice," og viser hele linjen ($0):
ekko "Hej verden" | awk '{$2="Alice"; udskriv $0}'
Produktion:
Hej Alice
På samme måde kan du bruge funktionen udskriv $0 fra kommandoen ovenfor for at efterligne grep funktionalitet.
awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh
3. sortere
sort er et andet Linux-kommandolinjeværktøj, der hjælper dig med at vise indholdet af den angivne tekstfil i et sorteret format. For eksempel kan du pipe outputtet af kommandoen awk som input til sorteringsværktøjet som følger:
awk '{print $1}' awk_examples.txt | sorter > sort_tekst.txt
kat sort_tekst.txt
Produktion:
Relaterede: Sådan sorteres tekstfiler i Linux ved hjælp af sorter
4. sed
sed eller stream editor tager input som en strøm af tegn og udfører filtrering og teksttransformationer (slet, erstat og erstat) på den angivne tekst.
Du kan bruge det i et script og redigere filer ikke-interaktivt. Derfor er det mest grundlæggende formål med værktøjet substitution af streng/tegn. Den generelle syntaks er:
sed 's/string/substitution/option' fil
Opret en fil ved hjælp af tilfældige sætninger for at øve og forstå, hvordan dette værktøj fungerer.
Lad os erstatte forekomsten af ordet "to" på hver linje i filen med "2" bruger -g flag for global erstatning, som følger:
sed 's/two/2/g' sed_examples.txt > sed_examples2.txt
På samme måde skal du bruge -d flag for at slette en bestemt linje fra filen:
sed '2d' sed_examples.txt
Du kan også erstatte strengen ved at angive et linjenummer (4 s/to/2/s) og kun udskrivning af den erstattede linje som følger:
sed -n '4 s/two/2/p' sed_examples2.txt
Det -n flag i kommandoen ovenfor deaktiverer automatisk udskrivning af inputstrømmen til outputtet. Du kan bruge denne mulighed til din fordel for at erstatte grep-hjælpefunktionaliteten med sed.
For eksempel kan du ændre kommandoen ovenfor ved kun at inkludere et regex-mønster /two/p sådan at -s flag vil kun udskrive linjerne til standardoutputstrømmen.
sed -n '/two/p' sed_examples2.txt
Relaterede: Disse 10 sed eksempler vil gøre dig til en Linux Power User
5. skære
Udskæringen er et andet kommandolinjeværktøj, der klipper/udtrækker dele af tekst fra en linje eller fil. Den beskærer teksten baseret på en specificeret felt-, tegn- eller byteposition og overfører resultatet til standardoutputtet.
Værktøjet bruger følgende syntaks:
skære fil
Brug -b mulighed for at klippe sektion eller indhold ved hjælp af en specificeret byte eller en række bytes:
cut -b 1 cut_examples.txt
Brug -c flag for at udtrække tekst ved at angive placeringen af tegn:
cut -c 1,3,5 cut_examples.txt
Endelig kan du også udtrække tekst ved at angive felter med -f mulighed og -d for mellemrum eller feltafgrænser:
cut -d " " -f 1 cut_examples.txt
Her er listen over områder med eksempler og beskrivelser, som du kan bruge med tegnet -c og byte -b muligheder:
Rækkevidde | Eksempel | Beskrivelse |
---|---|---|
n- | cut -c 7- filnavn | Udtræk tegn fra n'te heltal til slutningen af linjen |
n-m | cut -b 7-15 filnavn | Udtræk fra heltal n-m af hver linje fra inputfilen |
-m | cut -c -7 filnavn | Udtrækker linjer fra m til slutningen af linjen |
Bemærk, at du ikke kan definere intervallerne for tekstudtræk ved at bruge feltet -f mulighed.
Manipulering af tekst med Linux-kommandoer
Linux tilbyder mange programmer og værktøjer til at håndtere og arbejde omkring filer eller tekst. Det er måske ikke nødvendigt at lære dem alle, da du nemt kan udfylde hullet med et andet, når du først har et godt greb om en, som at bruge sed som grep eller awk som grep, men dette kan ikke være sandt for hvert værktøj.
Desuden har Linux-kommandoer en stejl indlæringskurve, men når først du udvikler færdigheden, kan de vise sig at være meget nyttige og effektive i enhver Linux-brugers liv, især en systemadministrator.
Træt af den gamle og kedelige terminalapp, der kommer forudinstalleret på Linux? Tjek disse otte terminalapps, der vil forbedre din arbejdsgang.
Læs Næste
- Linux
- Linux kommandoer

Rumaisa er freelanceskribent på MUO. Hun har båret mange hatte, fra en matematiker til en informationssikkerhedsentusiast, og arbejder nu som SOC-analytiker. Hendes interesser inkluderer at læse og skrive om nye teknologier, Linux-distributioner og alt omkring informationssikkerhed.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for tekniske tips, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere