Stream Editor (SED): Grunnleggende

Stream Editor Sed Grunnleggende



SED, også kjent som stream editor, er et veldig nyttig verktøy. Det brukes til å søke etter et bestemt ord eller et mønster og deretter gjøre noe med ordet eller mønsteret eller med andre ord transformere det. I Windows er SED også kjent som 'finn' og 'erstatt'-funksjonene. SED kommer med Ubuntu, så det er ikke nødvendig å installere noe; bare begynn å bruke den. I denne opplæringen viser vi deg hvordan du bruker SED eller strømredigeringsprogrammet.

'S'-kommandoen

Den viktigste av alle kommandoer i SED eller stream-editoren er 's'-kommandoen. 'S' står for erstatning. Syntaksen er som følger:







's / regexp / erstatning / flagg


Så la oss bruke en fil kalt 'file.txt' for eksemplene. Slik ser «file.txt» ut hvis du bruker den:




La oss bruke et eksempel for å vise hvordan 's'-kommandoen fungerer:



men 's / først / måne / i’ file.txt > moon.txt


Når et slikt uttrykk er gitt, betyr det:





    • s – Det står for substitutt.
    • først – Ordet som skal søkes etter i filen kalt 'file.txt'.
    • måne - Ordet 'først' er erstattet med ordet 'måne'.
    • i – Det står for ignorere. Vi vil ignorere denne delen for den første biten.
    • file.txt – Filen der SED skal søke etter mønsteret eller ordet. I dette tilfellet vil ordet 'først' være:
    • søkte i file.txt

    • moon.txt – Når ordet 'først' erstattes av ordet 'måne', vil det bli lagret under 'moon.txt'.

Så, hva skjer her? SED erstatter ordet 'først' for 'måne' kun i første omgang (det betyr at hvis ordet 'først' forekommer flere ganger, vil det ikke erstatte det hele eller erstatte det flere ganger). Filen den søker i kalles 'file.txt', og når transformasjonen eller erstatningen er gjort, vil den bli lagret under 'moon.txt'.



Slik ser det ut:


Husk å sette '/' der den skal være. Hvis du utelater en '/', vil ikke SED godta kommandoen.

Så langt har vi bare erstattet ordet 'først' med 'oppdaget' med erstatningen. Anta nå at vi ønsker å erstatte ordet 'linje' (som forekommer mange ganger - fire ganger for å være spesifikk) i den tredje linjen med ordet 'engel'.

Hvordan målretter vi spesifikt den tredje linjen? Vi bruker følgende kommando:

men '3s / linje / engel / i’ file.txt > angel.txt


Så, hva skjedde her? Vel, '3' spesifiserer linjenummeret. Derfor går den til tredje linje. Bytt deretter ut ordet 'line' for 'angel' i filen kalt 'file.txt' og lagre den transformerte filen som 'angel.txt'.


Hva om vi ønsker å erstatte eller transformere linjene '3' og '4'?

men ' 3 ,4s / linje / engel / i’ file.txt > angel2.txt



Merk at i forrige eksempel brukte vi 'i'-flagget for å ignorere. Nå bruker vi 'g'-flagget for globalt.

La oss bruke et eksempel for å vise hvordan 's'-kommandoen fungerer:

men 's / linje / sol / g’ file.txt > sun.txt


Når et slikt uttrykk er gitt, betyr det:

'g' står for global. Husk at i det første eksemplet, når vi bruker 'i'-flagget, er det bare en enkelt erstatning. Nå som vi la til en 'g' for global, betyr det erstatning overalt. Så i stedet for å si første linje, andre linje, tredje linje og siste linje, står det første sol, andre sol, tredje sol og siste sol. Den erstatter ordlinjen i hele filen (overalt) med ordet 'sol'.


Nå, hva om vi vil velge en enkelt linje basert på et ord den inneholder? Vel, vi kan se at den siste linjen i 'file.txt' har ordet 'siste' i seg. Anta nå at vi vil ha 'Dette er den siste linjen. Dette er den siste setningen.' setning til å bli «Dette er det siste spøkelset. Dette er den siste setningen.'

Vi skriver følgende:

men ' / siste / s / linje / spøkelse / ' file.txt > spøkelse.txt


Den 'siste' her forteller SED å se etter linjen som har ordet 'siste' og deretter erstatte ordet 'linje' med 'spøkelse' innenfor den linjen.


Anta nå at vi ønsker å gjøre det motsatte. Anta at vi vil at hver linje uten ordet 'siste' skal endre ordet 'linje' til 'spøkelse'. La oss skrive følgende:

men ' / siste /! s / linje / spøkelse / ' file.txt > spøkelse2.txt


Som du kan se her, har hver linje bortsett fra den siste (som inneholder ordet 'siste') ordet 'linje' erstattet med ordet 'spøkelse'.


Vi kan også gjøre dette med linjenummer:

men ' 3 , 4 ! s / linje / natt / i’ file.txt > natt.txt


I dette tilfellet er linje 3 og 4 utelatt, men annenhver linje har ordet 'linje' erstattet med ordet 'natt'.

Flere kommandoer

Hva om du hadde flere kommandoer? Vil du heller gjøre det en om gangen eller alle på en gang og spare deg selv for litt tid og arbeid?

Hva om vi ønsker å endre ordet 'første' til 'dag', 'andre' til 'natt' og 'resten' til 'spøkelse'? Vi bruker semikolon for å gjøre dette. Ikke glem å sette semikolon på slutten!

Vær oppmerksom på at du ikke absolutt trenger å sette «i»-flagget eller «ignorer»-flagget, men du må absolutt sette skråstreken (/) etter transformasjonsfrasen.

La oss nå sjekke det ut med et eksempel:

men 's / først / dag / ; s / sekund / natt / ; s / tredje / spøkelse / ; s / siste / spøkelse / ;' file.txt > kombinasjon.txt


Konklusjon

Strømredigeringsprogrammet eller SED-en er en måte å velge et ord eller et mønster på og transformere det. Det er faktisk kommandolinjeekvivalenten til vinduets 'finn' og 'erstatt' funksjoner. SED-kommandoen kan bli veldig komplisert, men hvis du i det minste kan det grunnleggende, er du klar til å ta den på deg! SED er faktisk et veldig kraftig verktøy med mange funksjoner. Selv om vi ikke kan dekke dem alle i én veiledning, dekket vi det grunnleggende om SED. I hovedsak lærte vi hvordan man transformerer et bestemt ord ved å bruke 's'-kommandoen der 's' står for erstatning. Vi kan erstatte ordene med andre ord, selektivt velge en linje der substitusjonen vil skje, eller til og med negere den. Uansett, dette er den enkleste delen av SED.

Lykke til med koding!