Hvordan erstatte en karakter med en annen - bash

Hvordan erstatte en karakter med en annen - bash
I bash -skripting er det vanlig å erstatte ett tegn med et annet tegn i en streng, da dette kan være nyttig for databehandling, tekstmanipulering og mange andre brukssaker. Heldigvis gir Bash flere innebygde metoder for å gjøre dette, og i denne artikkelen vil vi dekke noen av de vanligste måtene å erstatte tegn i et Bash-skript.

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:

  • Gjennom TR -kommando
  • Gjennom SED -kommando
  • Gjennom parameterutvidelse

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.