Merk: Vi bruker Linux Mint 20 for å demonstrere bruken av sed-kommandoen for å erstatte en streng i en fil. Du kan også bruke en hvilken som helst annen smak av Linux hvis du ønsker det.
Bruk av sed Command:
Nå skal vi vise deg noen veldig interessante eksempler for å skildre bruken av sed-kommandoen i Linux. La oss se hvordan denne kommandoen fungerer i forskjellige scenarier.
Opprette en tekstfil for demonstrasjon:
For å demonstrere bruken av sed-kommandoen, vil vi jobbe med en tekstfil. Du kan imidlertid til og med lage en Bash-fil eller hvilken som helst annen fil du ønsker. For det andre vil vi opprette filen i Hjem-katalogen slik at vi ikke trenger å spesifisere noen komplekse baner mens vi får tilgang til denne filen. Følgende trinn skal utføres for å lage en tekstfil:
Klikk på File Manager-ikonet på Linux Mint 20-oppgavelinjen:
Opprett nå en ny tekstfil i hjemmekatalogen ved å høyreklikke hvor som helst der borte og deretter velge alternativet Nytt dokument fra kaskademenyen og Tøm dokumentalternativet fra underkaskademenyen. Når tekstfilen er opprettet, gi den et passende navn. For dette spesielle eksemplet har jeg kalt det som sed.tekst.
Dobbeltklikk på denne filen for å åpne den og skriv hvilken som helst tilfeldig tekst i den som vist på bildet nedenfor. Lagre denne tekstfilen ved å trykke Ctrl + S og lukk den.
Start nå terminalen i Linux Mint 20 som vist i følgende bilde:
Etter at du har startet terminalen i Linux Mint 20, kan du gå gjennom alle eksemplene nevnt nedenfor en etter en.
Bruke sed-kommandoen for å erstatte alle forekomster av et gitt ord:
Du kan bruke kommandoen sed for å erstatte alle forekomster av et gitt ord i en tekstfil. Syntaksen for å nå dette målet er nevnt nedenfor:
$ sed 's / sed / FindWord / ReplaceWord /' fil.tekstHer må du erstatte FindWord med ordet du vil erstatte, og ReplaceWord med ordet som skal erstattes. Videre må du også erstatte “fil” med navnet på filen der du vil gjøre disse erstatningene. I dette scenariet har jeg erstattet FindWord med sed og ReplaceWord med erstatt. Filnavnet vårt ble sed.tekst. Det vises også i følgende bilde:
Den vellykkede kjøringen av denne kommandoen vil vise deg endringene som har skjedd på grunn av at du kjører denne kommandoen på terminalen din:
Ved å bruke kommandoen sed for å erstatte den niende forekomsten av et gitt ord i hver linje:
Ovenstående scenario var det enkleste erstatningsscenariet, men til tider vil du ikke erstatte alle forekomster av et ord, men du vil bare erstatte den første, andre eller nte forekomsten av ordet i alle linjene. For å gjøre dette kan du utføre følgende kommando:
$ sed 's / FindWord / ReplaceWord / num' fil.tekstHer må du erstatte FindWord med ordet du vil erstatte, og ReplaceWord med ordet som skal erstattes. Videre må du også erstatte “fil” med navnet på filen der du vil gjøre disse erstatningene. I dette scenariet har jeg erstattet FindWord erstatt og Erstatt ord med sed. Filnavnet vårt ble sed.tekst. Også num refererer til forekomsten eller plasseringen av ordet som skal erstattes. I det demonstrerte eksemplet vil jeg erstatte den første forekomsten av erstatning med sed i hver linje som vist på bildet nedenfor:
Den vellykkede kjøringen av denne kommandoen vil vise deg endringene som har skjedd på grunn av at du kjører denne kommandoen på terminalen din:
Bruke sed-kommandoen for å erstatte et gitt ord i en bestemt linje:
Noen ganger vil du bare erstatte et gitt ord i en bestemt linje og ikke i hele dokumentet. For å gjøre det må du eksplisitt spesifisere det bestemte linjenummeret i følgende kommando:
$ sed 'LineNum s / FindWord / ReplaceWord /' fil.tekstHer må du erstatte FindWord med ordet du vil erstatte, og ReplaceWord med ordet som skal erstattes. Videre må du også erstatte "fil" med navnet på filen der du vil gjøre disse erstatningene. I dette scenariet har jeg erstattet FindWord sed og ReplaceWord med erstatt. Filnavnet vårt ble sed.tekst. Du må også erstatte LineNum med linjenummeret på den aktuelle linjen du vil erstatte. I dette eksemplet ønsket vi å erstatte sed med erstatte i linje nummer 2 i filen vår som vist i følgende bilde:
Den vellykkede kjøringen av denne kommandoen viser deg endringene som har skjedd på grunn av at du kjører denne kommandoen på terminalen din. Du kan enkelt bekrefte at de nevnte endringene bare har skjedd på linje nummer 2 i filen vår, og ikke i hele teksten.
Konklusjon:
Når du føler behov for å erstatte et ord i en fil, er det aller første du trenger å gjøre å identifisere ditt spesifikke krav i.e. om du vil erstatte det spesifikke ordet i hele filen, eller om du vil erstatte en bestemt forekomst av det bestemte ordet, eller om du vil erstatte det ordet i en bestemt linje. Når du har identifisert ditt spesifikke scenario, kan du bruke den spesifikke metoden fra eksemplene som er diskutert i denne artikkelen.