I denne guiden vil vi vise hvordan du utfører flere SED -erstatninger i en enkelt fil.
Erstatte tekst ved hjelp av SED
Opprette en prøvetekst
SED -kommandoen driver en definert oppgave på en strøm. For demonstrasjonsformål skal vi lage en dummy -fil for å tjene som strømmen. Opprett en tekstfil ved hjelp av følgende kommando:
Sjekk innholdet i filen ved å bruke følgende kommando:
$ kattest.tekstErstatte tekst
For å erstatte tekster er den generelle kommandostrukturen som følger:
Her søker SED etter mønsteret som er spesifisert i den gitte strømmen og erstatter den med den gitte erstatningsteksten. G -flagget sikrer at SED søker i hele teksten etter mønsterkamper.
La oss prøve det på demo -filen vår. Kjør følgende kommando:
$ sed 's/the/hallo/g' test.tekstUtføre flere erstatninger
I det siste eksemplet byttet vi ut et enkelt tekstmønster. Hva om du ønsket å erstatte flere mønstre?
Det er et par forskjellige måter å gjøre det på. Vi kan gjøre det innenfor en enkelt SED -kommando eller dele den inn i flere.
Flere erstatninger i en enkelt SED -kommando
Vi kan gi flere uttrykk for å SED ved hjelp av -e -flagget. Ta en titt på følgende eksempel:
Her erstatter det første uttrykket “The” med “Hello”. Det andre uttrykket erstatter "lat" med "trøtt".
I stedet for å erklære flere uttrykk, kan vi også kombinere dem til et enkelt uttrykk, hver del atskilt med en semikolon (;). Ta en titt på følgende eksempel:
$ sed -e 's/the/hallo/g; s/lat/sliten/' test.tekstHvis du kjører det samme settet med SED -kommandoer om og om igjen, kan vi plassere dem i en enkelt fil. Vi kan passere filen som kilden til kommandoer til SED ved hjelp av -f -flagget. Kommandostrukturen ser ut som følgende:
$ sed -fLa oss sette det ut i handling. Vi samlet alle SED -kommandoene som vi ønsker å kjøre i filkommandoene.tekst.
$ CAT -kommandoer.tekstMerk at hvert unikt SED -uttrykk er plassert i en ny linje for å forbedre den visuelle klarheten. Du kan imidlertid også bruke Semicolon -teknikken for å slå sammen alle uttrykkene til et enkelt uttrykk.
Nå kan vi spesifisere denne filen som er sed som listen over uttrykk som skal kjøres på den gitte strømmen:
$ sed -f kommandoer.TXT -test.tekstFlere SED -erstatninger med flere SED -kommandoer
Dette er en mer enkel tilnærming. I stedet for å bruke et hvilket som helst fancy triks, filtrerer vi strømmen ved hjelp av en SED -kommando og gir utdataene til de andre SED -kommandoene.
Ta en titt på følgende eksempel:
$ sed 's/the/hallo/g' test.txt | sed 's/lat/sliten/'Her erstatter den første SED -kommandoen “The” med “Hello”. Utgangen blir deretter ledet til den andre SED -kommandoen som erstatter "lat" med "trøtt".
Selv om denne metoden er enkel, kan den veldig lett bli overflødig, spesielt hvis du trenger å kjøre flere SED -uttrykk. I så fall er bruk av SED -kommandofilen den mest effektive måten.
Konklusjon
I denne guiden utforsket vi de forskjellige måtene hvordan vi kan utføre flere erstatninger ved hjelp av SED. Vi demonstrerte hvordan vi kan passere flere uttrykk ved hjelp av -e -flagget. Vi komprimerte flere uttrykk til et enkelt uttrykk ved hjelp av semikolonene. For en mer repeterende arbeidsmengde demonstrerte vi også bruken av en tekstfil for å kjøre flere SED -uttrykk på en gang.
Til slutt undersøkte vi bruken av SED på en enkel måte: røring av en SED -kommando til en annen.
I denne guiden endrer ikke SED -kommandoene innholdet i filen. Lær mer om bruken av SED for å redigere filene på stedet.
Glad databehandling!