Linux-utviklere følger filosofien om å lage små programmer som gjør én oppgave og gjør det bra. Ta Linux tekstbehandlingsverktøy som et eksempel, de er lette og har modulær funksjonalitet. Selv om disse tekstmanipuleringsverktøyene er forskjellige i kompleksitet og funksjonalitet, kommer de godt med i et miljø der det grafiske brukergrensesnittet ikke er tilgjengelig.

Artikkelen dekker de beste Linux-verktøyene for å lese filer og bruke regulære uttrykk for å utføre operasjoner på den valgte teksten. Den dekker også deres mest grunnleggende funksjonalitet og eksempler for bedre forståelse.

1. grep

grep er et Linux-tekstmanipulerende verktøy som søker etter en streng med tegn eller mønstre kjent som regulære uttrykk i en fil eller tekst. grep-verktøyet tilhører familien av verktøy som inkluderer egrep, fgrep og grep, blant dem er fgrep den raskeste av alle, mens grep er den enkleste.

Den generelle syntaksen for bruk av grep er som følger:

grep -options streng filnavn

For eksempel for å søke etter ordet "root" i filen /etc/passwd:

instagram viewer
grep root /etc/passwd

Noen standard kommandolinjeeksempler for å komme i gang er:

Alternativer Eksempel Beskrivelse
-c grep -c ./bashrc Tell antall linjer der strengen finnes
-Jeg grep -i ./bashrc Utfør et søk uten store og små bokstaver for den angitte strengen
-o grep -o fil Skriver bare ut den samsvarende strengen
-l grep -l "passwd" Skriver ut filnavn i gjeldende katalog som samsvarer med mønsteret
-n grep -n fil Skriver ut linjenummeret langs linjen som inneholder den angitte strengen
streng1|streng2 grep "string1|string2" fil Finn og skriv ut flere strenger fra en fil

På samme måte kan du bruke ^ metategn med grep-kommandoen for å vise alle samsvarende strenger som begynner med bestemte tegn.

Følgende kommando overfører for eksempel env-kommandoen som en inngang til grep og viser variabler som begynner med "HO":

env | grep ^HO

I slekt: Praktiske eksempler på Linux Grep-kommandoer

2. awk

awk er et kraftig skriptspråk og et kommandolinjeverktøy for tekstmanipulering som kan utføre linje-for-linje skanninger og sammenligne linjer med mønstre. Den grunnleggende syntaksen til awk-kommandoen er en handling definert mellom et enkelt anførselstegn og krøllete klammeparenteser etterfulgt av filnavnet.

awk '{action}' filnavn
awk '{mønster; action}' filnavn

Verktøyet søker i filen ved hjelp av regulære uttrykk og utfører funksjonen som er definert i handlingsparameteren. awk kjører skriptet på hver linje hvis du ikke angir et mønster, som vist nedenfor:

awk '{print $1}' awk_examples.txt

...hvor $1 viser det første feltet i awk_examples.txt fil.

Følgende kommando utfører utskriftsfunksjonen på det gitte mønsteret ved å erstatte det andre feltet "Verden"med"Alice," og viser hele linjen ($0):

ekko "Hello World" | awk '{$2="Alice"; skriv ut $0}'

Produksjon:

Hei Alice

På samme måte kan du bruke funksjonen skriv ut $0 fra kommandoen ovenfor for å emulere grep funksjonalitet.

awk '/john/{print $0}' /etc/passwd
john: x: 1001:1001::/home/john:/bin/sh

3. sortere

sort er et annet Linux-kommandolinjeverktøy som hjelper deg å vise innholdet i den angitte tekstfilen i et sortert format. Du kan for eksempel sende utdataene fra awk-kommandoen som en inngang til sorteringsverktøyet som følger:

awk '{print $1}' awk_examples.txt | sorter > sort_tekst.txt
cat sort_text.txt

Produksjon:

I slekt: Hvordan sortere tekstfiler i Linux ved hjelp av sortering

4. sed

sed eller stream editor tar inndata som en strøm av tegn og utfører filtrering og teksttransformasjoner (slett, erstatt og erstatt) på den angitte teksten.

Du kan bruke det i et skript og redigere filer ikke-interaktivt. Derfor er det mest grunnleggende formålet med verktøyet å erstatte streng/tegn. Den generelle syntaksen er:

sed 's/string/substitution/option'-fil

Lag en fil ved å bruke tilfeldige setninger for å øve og forstå hvordan dette verktøyet fungerer.

La oss erstatte forekomsten av ordet "to" på hver linje i filen med "2" bruker -g flagg for global erstatning, som følger:

sed 's/two/2/g' sed_examples.txt > sed_examples2.txt

På samme måte, bruk -d flagg for å slette en bestemt linje fra filen:

sed '2d' sed_examples.txt

Du kan også erstatte strengen ved å spesifisere et linjenummer (4 s/to/2/p) og bare skrive ut den erstattede linjen som følger:

sed -n '4 s/two/2/p' sed_examples2.txt

De -n flagget i kommandoen ovenfor deaktiverer automatisk utskrift av inngangsstrømmen til utgangen. Du kan bruke dette alternativet til din fordel for å erstatte grep-verktøyfunksjonaliteten med sed.

Du kan for eksempel endre kommandoen ovenfor ved å bare inkludere et regex-mønster /two/p slik at -s flagget vil bare skrive ut linjene til standard utdatastrøm.

sed -n '/two/p' sed_examples2.txt

I slekt: Disse 10 sed-eksemplene vil gjøre deg til en Linux Power User

5. skjære

Kuttet er et annet kommandolinjeverktøy som klipper ut/trekker ut deler av tekst fra en linje eller fil. Den kutter teksten basert på et spesifisert felt, tegn eller byteposisjon og overfører resultatet til standardutdata.

Verktøyet tar inn følgende syntaks:

skjære  fil

Bruke -b mulighet for å kutte ut seksjon eller innhold ved å bruke en spesifisert byte eller et utvalg byte:

cut -b 1 cut_examples.txt

Bruke -c flagg for å trekke ut tekst ved å spesifisere plasseringen av tegn:

cut -c 1,3,5 cut_examples.txt

Til slutt kan du også trekke ut tekst ved å spesifisere felt med -f alternativ og -d for mellomrom eller feltavgrensning:

cut -d " " -f 1 cut_examples.txt

Her er listen over områder med eksempler og beskrivelser som du kan bruke med tegnet -c og byte -b alternativer:

Område Eksempel Beskrivelse
n- cut -c 7- filnavn Trekk ut tegn fra n'te heltall til slutten av linjen
n-m cut -b 7-15 filnavn Trekker ut fra heltall n-m for hver linje fra inndatafilen
-m cut -c -7 filnavn Trekker ut linjer som starter fra m til slutten av linjen

Merk at du ikke kan definere områdene for tekstutvinning ved å bruke feltet -f alternativ.

Manipulere tekst med Linux-kommandoer

Linux tilbyr mange programmer og verktøy for å håndtere og jobbe rundt filer eller tekst. Det er kanskje ikke nødvendig å lære dem alle, siden du enkelt kan fylle tomrommet med et annet når du har et godt grep om ett, som å bruke sed som grep eller awk som grep, men dette kan ikke være sant for hvert verktøy.

Dessuten har Linux-kommandoer en bratt læringskurve, men når du først har utviklet ferdighetene, kan de vise seg å være svært nyttige og effektive i livet til enhver Linux-bruker, spesielt en systemadministrator.

8 beste terminalapper for forbedret Linux-produktivitet

Lei av den gamle og kjedelige terminalappen som kommer forhåndsinstallert på Linux? Sjekk ut disse åtte terminalappene som vil forbedre arbeidsflyten din.

Les Neste

DelekvitringE-post
Relaterte temaer
  • Linux
  • Linux-kommandoer
Om forfatteren
Rumaisa Niazi (7 artikler publisert)

Rumaisa er frilansskribent ved MUO. Hun har brukt mange hatter, fra en matematiker til en informasjonssikkerhetsentusiast, og jobber nå som SOC-analytiker. Hennes interesser inkluderer å lese og skrive om nye teknologier, Linux-distribusjoner og alt rundt informasjonssikkerhet.

Mer fra Rumaisa Niazi

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere