Hvordan trekke ut en del av en streng ved hjelp av bash kutt og delte kommandoer

Hvordan trekke ut en del av en streng ved hjelp av bash kutt og delte kommandoer
Når vi programmerer, er det ofte når vi trenger å trekke ut en bestemt del av en streng fra en større tekst. Dette kan gjøres ved hjelp av forskjellige teknikker og verktøy, og en av de mest populære metodene er bruken av bash/kutt/delte kommandoer i Linux/UNIX.

Disse kommandoene er kraftige og allsidige og kan brukes til å trekke ut spesifikke deler av en streng basert på forskjellige avgrensere som mellomrom, komma og semikoloner. Denne artikkelen vil utforske hvordan du kan trekke ut deler av en streng ved hjelp av bash/kutt/delte kommandoer og gi praktiske eksempler for å hjelpe deg med å forstå hvordan du bruker dem effektivt.

Kuttkommandoen

Cut -kommandoen brukes til å trekke ut seksjoner fra hver linje i en fil eller streng. Det er en enkel og kraftig kommando som kan hente ut felt basert på en avgrenser eller en spesifikk karakter. Syntaksen for CUT -kommandoen er som følger:

cut -d [avgrensning] -f [felt] [filnavn]

Her spesifiserer alternativet -d -alternativet avgrenseren som brukes i inndatafilen, og alternativet -f -alternativet spesifiserer feltet (e) som skal trekkes ut. Filnavnsargumentet er inndatafilen som skal behandles. Anta for eksempel at vi har en fil som heter TestFile.txt, med følgende innhold:

BMW, M5
Lexus, LS470
Volvo, x70

Hvis vi ønsker å trekke ut det andre feltet fra hver linje, kan vi bruke følgende skallskript:

#!/bin/bash
Cat testfile.tekst
ekko "Her er den ekstraherte delen:"
kutt -d ',' -f 2 testfile.tekst

Nedenfor er utgangen fra den ovennevnte koden som viser filen og dens ekstraherte del:

Den delte kommandoen

Split -kommandoen brukes til å dele en streng i en rekke underlag basert på en avgrenser. Det er en innebygd kommando i bash som kan brukes til å trekke ut en del av en streng. Syntaksen for den delte kommandoen er som følger:

IFS = [avgrensning] Read -RA [Array_Name] <<< "$[string]"

Her spesifiserer IFS -variabelen avgrenseren som brukes i strengen, lesekommandoen leser inngangen og deler den inn i en matrise, og <<< operator is used to pass the string as input.

Anta for eksempel at vi har en streng som heter “BMW, M5”. Hvis vi ønsker å trekke ut det andre feltet, kan vi bruke følgende bashskript:

#!/bin/bash
Cat testfile.tekst
ekko "Her er den ekstraherte delen:"
Ifs = ',' Les -ra felt <<< "BMW,M5"
ekko $ felt [1]

Bash Split -kommandoen kan også brukes til å trekke ut flere felt fra en streng ved å bruke flere variabler i lesekommandoen.

Konklusjon

Bash gir flere metoder for å trekke ut en del av en streng, inkludert kutt- og delte kommandoer. Cut -kommandoen kan brukes til å trekke ut felt basert på en avgrenser eller et spesifikt tegn, mens den delte kommandoen kan brukes til å dele en streng i en rekke underlag basert på en avgrensning. Å forstå hvordan man trekker ut en del av en streng er en viktig ferdighet for alle som jobber med bash -skript.