Hvordan erstatte ett tegn med et annet i bash -manus
Å erstatte en karakter med en annen er en vanlig oppgave i Sash Scripting og kan være nyttig i mange forskjellige scenarier. Her er de tre enkle måtene å erstatte en karakter med en annen i et bash -manus:
Hvordan erstatte ett tegn med et annet ved hjelp av TR -kommandoen i bash
TR -kommandoen er et enkelt verktøy for å oversette, slette eller klemme tegn i en streng. Det kan brukes til å erstatte ett tegn med et annet ved å spesifisere tegnene som skal erstattes og erstatningene deres, her er syntaks for bruk av denne kommandoen:
tr '' ''
Her for illustrasjon hvis jeg har tatt en streng som er "Hello Linux", og hvis jeg vil erstatte store bokstaver l med store bokstaver w, kan det gjøres med å bruke TR -kommandoen slik:
Echo "Hello Linux" | tr 'l' 'w'
Her er hele bashoden som viser hvordan du bruker TR -kommandoen for å erstatte en karakter med et annet:
#!/bin/bash
Main_string = "hallo linux"
Eksporter new_string = $ (ekko "$ main_string" | tr 'l' 'w')
ekko "main_string:" $ main_string
ekko "modifisert_string:" $ new_string
Her er utdataene for Bash -skriptet, L erstattes med W:
Hvordan erstatte ett tegn med et annet ved hjelp av SED -kommandoen i bash
En annen måte å erstatte et tegn med en annen karakter i bash er å bruke SED -kommandoen. SED -kommandoen er en strømredigerer som kan utføre forskjellige operasjoner på en streng, inkludert substitusjon. Her er syntaksen for å bruke denne kommandoen for å erstatte ett tegn med et annet:
sed 's /// g'
Her for illustrasjon Hvis jeg har tatt en streng som er "Hello Linux" og jeg vil erstatte små bokstaver "L" med "W", kan det gjøres med å bruke TR -kommandoen slik:
Echo "Hello Linux" | sed 's/l/w/g'
Her er hele bashoden som viser hvordan du bruker SED -kommandoen for å erstatte en karakter med et annet:
#!/bin/bash
Main_string = "hallo linux"
New_string = $ (ekko "$ main_string" | sed 's/l/w/g')
ekko "main_string:" $ main_string
ekko "modifisert_string:" $ new_string
I dette eksemplet bruker vi Echo -kommandoen for å sende ut strengen “Hello Linux”, og deretter pipere utgangen til SED -kommandoen. SED -kommandoen bruker kommandoen for substitusjon (er) for å erstatte alle forekomster av bokstaven “L” med bokstaven “W”. G -alternativet på slutten av kommandoen ber SED erstatte alle forekomster av tegnet i strengen, ikke bare den første forekomsten. Utgangen fra denne kommandoen vil være "Hello Winux":
Hvordan erstatte ett tegn med et annet ved hjelp av parameterutvidelse i bash
En annen måte å erstatte et tegn med en annen i bash, kan du være ved å bruke en parameterutvidelse, og her er et eksempel som erstatter "L" av den originale strengen vil "w" ny karakter:
#!/bin/bash
Main_string = "hallo linux"
New_string = "$ main_string // l/w"
ekko "main_string:" $ main_string
ekko "modifisert_string:" $ new_string
I dette eksemplet bruker vi parameterutvidelse for å erstatte alle forekomster av små bokstaver “H” med bokstaven “S” i Main_String -variabelen. Utgangen fra denne kommandoen vil være "Hello Winux":
Konklusjon
Det er flere måter å erstatte et tegn med en annen karakter i bash, inkludert bruk av TR -kommandoen, SED -kommandoen og parameterutvidelsen. Hver metode har sine egne fordeler og ulemper, så velg den som fungerer best for din spesifikke brukssak, da denne guiden gir alle de tre metodene for å gjøre det.