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:
grep root /etc/passwd
Noen standard kommandolinjeeksempler for å komme i gang er:
Alternativer | Eksempel | Beskrivelse |
---|---|---|
-c | grep -c |
Tell antall linjer der strengen finnes |
-Jeg | grep -i |
Utfør et søk uten store og små bokstaver for den angitte strengen |
-o | grep -o |
Skriver bare ut den samsvarende strengen |
-l | grep -l "passwd" | Skriver ut filnavn i gjeldende katalog som samsvarer med mønsteret |
-n | grep -n |
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.
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
- Linux
- Linux-kommandoer
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.
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