Følgende utdata viser at GNU Sed av versjon 4.4 er installert i systemet.
Syntaks:
sed [alternativer]...[manus] [fil]
Hvis ingen filnavn er utstyrt med `sed` -kommandoen, fungerer skriptet på standard inndata. `Sed` -skriptet kan kjøres uten noe alternativ.
Innhold :
- Grunnleggende tekstbytte med ‘sed’
- Erstatt alle forekomster av en tekst i en bestemt fillinje ved å bruke ‘g’ -alternativet
- Erstatt den andre forekomsten bare av en kamp på hver linje
- Erstatt den siste forekomsten av en kamp på hver linje
- Erstatt den første kampen i en fil med ny tekst
- Erstatt den siste kampen i en fil med ny tekst
- Unnslippe tilbakeslag i erstatningskommandoer for å administrere søk og erstatning av filbaner
- Erstatt alle filene hele banen med bare filnavnet ingen katalog
- Erstatt tekst, men bare hvis det finnes annen tekst i strengen
- Erstatt tekst, men bare hvis det ikke finnes annen tekst i strengen
- Legg til en streng før etter det matchende mønsteret ved å bruke ‘ 1 '
- Slett matchende linjer
- Slett matchende linje og 2 linjer etter matchende linje
- Slett alle mellomrom på slutten av tekstlinjen
- Slett alle linjene som har en match to ganger på linjen
- Slett alle linjene som har det eneste mellomrommet
- Slett alle tegn som ikke kan skrives ut
- Hvis det er en kamp i kø, legg til noe på slutten av linjen
- Hvis det er en treff i linjen sett inn linje før kampen
- Hvis det er en treff i linjen sett inn linje etter kampen
- Hvis det ikke er en kamp, legg til noe på slutten av linjen
- Slett linjen hvis det ikke er en kamp
- Duplisert samsvarende tekst etter å ha lagt til et mellomrom etter teksten
- Erstatt en av listen med strenger med den nye strengen
- Erstatt en matchet streng med en streng som inneholder nye linjer
- Fjern nye linjer fra filen og sett inn et komma på slutten av hver linje
- Fjern kommaer og legg til nye linjer for å dele teksten i flere linjer
- Finn store og små bokstaver som er ufølsomme og slett linje
- Finn store og små bokstaver som er ufølsomme og erstatt med ny tekst
- Finn store og små bokstaver som er ufølsomme og erstatt med alle store bokstaver i samme tekst
- Finn store og små bokstaver som er ufølsomme og erstatt med alle små bokstaver i samme tekst
- Erstatt alle store bokstaver i teksten med små bokstaver
- Søk etter tallet på linjen, og legg til valutasymbol etter tallet
- Legg kommaer til tall som har mer enn 3 sifre
- Erstatt fanetegn med 4 mellomromstegn
- Erstatt 4 påfølgende mellomromstegn med et fanetegn
- Avkort alle linjene til de første 80 tegnene
- Søk etter en strengregeks og legg til litt standardtekst etter den
- Søk etter en strengregeks og en andre kopi av funnet streng etter den
- Kjører flerlinjes `sed`-skript fra en fil
- Match et flerlinjers mønster og bytt ut med ny tekst med flere linjer
- Erstatt rekkefølgen på to ord som matcher et mønster
- Bruk flere sed-kommandoer fra kommandolinjen
- Kombiner sed med andre kommandoer
- Sett inn en tom linje i en fil
- Slett alle alfanumeriske tegn fra hver linje i en fil.
- Bruk ‘&’ for å matche strengen
- Bytt par ord
- Bruk den store bokstaven i hvert ord
- Skriv ut linjenumre for filen
1. Grunnleggende tekstbytte med ‘sed’
Enhver bestemt del av en tekst kan søkes og erstattes ved å bruke søk og erstatte mønster ved å bruke `sed` kommando. I det følgende eksemplet indikerer ‘s’ søke- og erstatningsoppgaven. Ordet ‘Bash’ vil bli søkt i teksten, Bash Scripting Language, og hvis ordet finnes i teksten, blir det erstattet av ordet ‘Perl’.
$kastet ut 'Bash Scripting Language' | sed 's/Bash/Perl/'
Produksjon:
Ordet 'Bash' finnes i teksten. Så utgangen er 'Perl Scripting Language'.
`sed` -kommandoen kan også brukes til å erstatte hvilken som helst del av et filinnhold. Lag en tekstfil med navnet ukedag.txt med følgende innhold.
ukedag.txt
mandagtirsdag
onsdag
Torsdag
fredag
lørdag
søndag
Følgende kommando vil søke og erstatte teksten 'søndag', med teksten 'søndag er ferie'.
$kattukedag.txt$sed 's/søndag/søndag er ferie/'ukedag.txt
Produksjon:
'Søndag' eksisterer i filen weekday.txt, og dette ordet erstattes av teksten 'søndag er ferie' etter at kommandoen 'sed' er utført ovenfor.
2. Erstatt alle forekomster av en tekst i en bestemt fillinje ved å bruke ‘g’ -alternativet
'G' -alternativet brukes i kommandoen 'sed' for å erstatte alle forekomster av matchende mønster. Lag en tekstfil med navnet python.txt med følgende innhold for å kjenne til bruken av ‘g’ -alternativet. Denne filen inneholder ordet. 'Python' flere ganger.
python.txt
Python er et veldig populært språk.
Python er enkel å bruke. Python er lett å lære.
Python er et språk på tvers av plattformer
Følgende kommando vil erstatte alle forekomster av ' Python 'I den andre linjen i filen, python.txt . Her, 'Python' forekommer to ganger i den andre linjen.
$ cat python.tekst$ sed'2 s / Python / perl / g'python.tekst
Produksjon:
Følgende utdata vises etter at skriptet er kjørt. Her erstattes all forekomst av 'Python' i den andre linjen med 'Perl'.
3. Erstatt den andre forekomsten bare av en kamp på hver linje
Hvis et ord vises flere ganger i en fil, kan den spesielle forekomsten av ordet i hver linje erstattes med kommandoen 'sed' med forekomstnummeret. Følgende kommando `sed` erstatter den andre forekomsten av søkemønsteret i hver linje i filen, python.txt .
$ sed's/Python/perl/g2'python.tekstProduksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Her er søketeksten, ' Python ' vises bare to ganger på den andre linjen, og den erstattes av teksten ' Perl '.
4. Erstatt den siste forekomsten av en kamp på hver linje
Lag en tekstfil med navnet lang.txt med følgende innhold.
lang.txt
Bash programmeringsspråk. Python programmeringsspråk. Perl programmeringsspråk.
Hypertekstmarkeringsspråk.
Utvidbart markeringsspråk.
5. Erstatt den første matchen i en fil med ny tekst
Følgende kommando erstatter bare den første treffet i søkemønsteret, ' Python 'Etter teksten, 'Perl '. Her, '1' brukes for å matche den første forekomsten av mønsteret.
$ cat python.tekst$ sed'1 s / Python / perl /'python.tekst
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Her. den første forekomsten av 'Python' i den første linjen erstattes av 'perl'.
6. Erstatt den siste kampen i en fil med ny tekst
Følgende kommando erstatter den siste forekomsten av søkemønsteret, 'Python 'Etter teksten, 'Bash'. Her, '$' symbolet brukes for å matche den siste forekomsten av mønsteret.
$ cat python.tekst$ sed -e'$ s / Python / Bash /'python.tekst
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
7. Unnslippe tilbakeslag i erstatningskommandoer for å administrere søk og erstatning av filbaner
Det er nødvendig å unnslippe skråstreken i filbanen for å søke og erstatte. Følgende kommando for `sed` vil legge til omvendt skråstrek () i filbanen.
$kastet ut /hjem/ubuntu/kode/perl/add.pl| sed 's; /; \ /; g'Produksjon:
Filbanen, ‘/Home/ubuntu/code/perl/add.pl’ er gitt som input i kommandoen `sed`, og følgende utgang vil vises etter at du har kjørt kommandoen ovenfor.
8. Erstatt alle filene i hele banen med bare filnavnet ingen katalog
Filnavnet kan enkelt hentes fra filbanen ved å bruke ` grunnnavn ' kommando. kommandoen `sed` kan også brukes til å hente filnavnet fra filbanen. Følgende kommando vil bare hente filnavnet fra filbanen fra kommandoen `echo`.
$kastet ut '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Her er filnavnet ‘ myfile.txt ' skrives ut som utskrift.
9. Erstatt tekst, men bare hvis det finnes annen tekst i strengen
Lag en fil som heter ‘ dept.txt ' med følgende innhold for å erstatte tekst basert på annen tekst.
avd. txt
Liste over studenter totalt:
CSE - CountEEE - Count
Civil - Count
To erstatningskommandoer brukes i følgende `sed` -kommando. Her står teksten ' Telle 'Vil bli erstattet av 100 på linjen som inneholder teksten, 'CSE 'Og teksten,' Telle' vil bli erstattet av 70 i linjen som inneholder søkemønsteret, ‘ EEE ' .
$kattavd. txt$sed -Og '/CSE/s/Count/100/; /EEE/s/Count/70/; 'avd. txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
10. Erstatt tekst, men bare hvis det ikke finnes annen tekst i strengen
Følgende kommando `sed` erstatter verdien 'Count' på linjen som ikke inneholder teksten 'CSE'. avd. txt filen inneholder to linjer som ikke inneholder teksten 'CSE'. Så ' Telle ‘Teksten blir erstattet av 80 på to linjer.
$kattavd. txt$sed -Jeg -Og '/CSE/! s/Count/80/; 'avd. txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
11. Legg til streng før og etter matchende mønster ved hjelp av 1
Sekvensen med matchende mønstre for `sed` kommando er betegnet med‘ 1 ’,‘ 2 ’og så videre. Den følgende `sed` -kommandoen søker i mønsteret,' Bash ', og hvis mønsteret stemmer overens, får du tilgang til det med 1 i delen for å erstatte tekst. Her blir teksten 'Bash' søkt i inndatateksten, og en tekst er lagt til før og en annen tekst er lagt til etter ' 1'.
$kastet ut 'Bash -språk' | sed 's/ (Bash )/Lær 1 programmering/'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Her, ' Lære' teksten er lagt til før 'Bash' og ' programmering 'Teksten legges til etter' Bash ’.
12. Slett matchende linjer
'D' alternativet brukes i kommandoen 'sed' for å slette en hvilken som helst linje fra filen. Lag en fil med navnet os.txt og legg til følgende innhold for å teste funksjonen til 'D' alternativ.
katt os.txt
WindowsLinux
Android
DU
Følgende kommando `sed` sletter disse linjene fra os.txt filen som inneholder teksten ‘OS’.
$kattos.txt$sed '/The D'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
13. Slett matchende linje og 2 linjer etter matchende linje
Følgende kommando vil slette tre linjer fra filen os.txt hvis mønsteret, ' Linux ' er funnet. os.txt inneholder teksten, 'Linux 'I den andre linjen. Så denne linjen og de to neste linjene blir slettet.
$sed ' / Linux /, + 2d'os.txtProduksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
14. Slett alle mellomrom på slutten av tekstlinjen
Ved hjelp av [:blank:] klasse kan brukes til å fjerne mellomrom og faner fra teksten eller innholdet i en fil. Følgende kommando fjerner mellomrommene på slutten av hver linje i filen, os.txt.
$kattos.txt$sed 's/[[: blank:]]*$ //'os.txt
Produksjon:
os.txt inneholder tomme linjer etter hver linje som slettes av kommandoen `sed`.
15. Slett alle linjene som har en match to ganger på linjen
Lag en tekstfil med navnet, input.txt med følgende innhold og slett linjene i filen som inneholder søkemønsteret to ganger.
input.txt
PHP er et skriptspråk på serversiden.
PHP er et åpen kildespråk, og PHP er skift mellom store og små bokstaver.
PHP er plattformuavhengig.
'PHP' -tekst inneholder to ganger i den andre linjen i filen, input.txt . To `sed` -kommandoer brukes i dette eksemplet for å fjerne linjene som inneholder mønsteret php ' to ganger. Den første 'sed' -kommandoen erstatter den andre forekomsten av' php 'på hver linje med' dl 'Og send utgangen til den andre' sed' -kommandoen som input. Den andre 'sed' -kommandoen sletter linjene som inneholder teksten,' dl '.
$kattinput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Produksjon:
input.txt filen har to linjer som inneholder mønsteret, 'Php' to ganger. Så følgende utgang vises etter at du har kjørt kommandoene ovenfor.
16. Slett alle linjene som bare har mellomrom
Velg en fil som inneholder tomme linjer i innholdet for å teste dette eksemplet. input.txt filen som er opprettet i forrige eksempel, inneholder to tomme linjer som kan slettes ved å bruke følgende `sed` -kommando. Her brukes ‘^$’ for å finne ut de tomme linjene i filen, input.txt.
$kattinput.txt$sed '/^$/d'input.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
17. Slett alle tegn som ikke kan skrives ut
Tegn som ikke kan skrives ut, kan slettes fra hvilken som helst tekst ved å erstatte tegn som ikke kan skrives ut med ingen. [: print:] -klassen brukes i dette eksemplet for å finne ut de tegnene som ikke kan skrives ut. ‘ T’ er et tegn som ikke kan skrives ut, og det kan ikke analyseres direkte av kommandoen ‘ekko’. For dette er ' t' tegnet tilordnet i en variabel, $ -fanen som brukes i en 'echo' kommando. Utdataene fra `echo` -kommandoen sendes i` sed` -kommandoen som vil fjerne tegnet ' t' fra utgangen.
$kategorien= $'t'$kastet ut 'Hallo$ tabWorld'
$kastet ut 'Hallo$ tabWorld' | sed 's/[^[: print:]] // g'
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Den første `ekkokommandoen vil skrive ut utskriften med tabulatorplass, og` sed` -kommandoen vil skrive ut utskriften etter at fanen er fjernet.
18. Hvis det er en kamp i kø, legg til noe på slutten av linjen
Følgende kommando vil legge til '10' på slutten av linjen som inneholder teksten 'Windows' i os.txt fil.
$kattos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen.
19. Hvis det er en treff i linjen, sett inn en linje før teksten
Følgende kommando `sed` søker i teksten, PHP er plattformuavhengig ' i input.txt filen som er opprettet før. Hvis filen inneholder denne teksten på en hvilken som helst linje, så ' PHP er et tolket språk ' vil bli satt inn før den linjen.
$kattinput.txt$sed '/PHP er plattformuavhengig/s/^/PHP er et tolket språk. N/'input.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
20. Hvis det er en treff i linjen, sett inn en linje etter den linjen
Følgende kommando `sed` søker i teksten, Linux ' i filen os.txt og hvis teksten finnes i en hvilken som helst linje, vil en ny tekst, ' Ubuntu 'Vil bli satt inn etter den linjen.
$kattos.txt$sed 's/Linux/& nUbuntu/'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
21. Hvis det ikke er en kamp, legg til noe på slutten av linjen
Følgende kommando `sed` søker i disse linjene os.txt som ikke inneholder teksten, 'Linux' og legg til teksten ' Operativsystem 'På slutten av hver linje. Her, ' $ 'Symbolet brukes til å identifisere linjen der den nye teksten skal legges til.
$kattos.txt$sed '/Linux/! S/$/Operativsystem/'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Det finnes tre linjer i filen os.txt som ikke inneholder teksten 'Linux' og den nye teksten som er lagt til på slutten av disse linjene.
22. Hvis det ikke er en kamp, slett linjen
Lag en fil med navnet web.txt og legg til følgende innhold og slett linjer som ikke inneholder matchende mønster. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Følgende kommando `sed` søker og sletter de linjene som ikke inneholder teksten' CSS '. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Produksjon: Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Det er én linje i filen som inneholder teksten 'CSE'. Så, utgangen inneholder bare en linje.
23. Dupliser samsvarende tekst etter å ha lagt til et mellomrom etter teksten
Den følgende `sed` -kommandoen søker etter ordet' til 'i filen, python.txt og hvis ordet eksisterer, vil det samme ordet bli satt inn etter søkeordet ved å legge til mellomrom. Her, '&' symbolet brukes til å legge til duplikatet.
$kattpython.txt$sed -Og 's / to / & to / g'python.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene. Her blir ordet 'til' søkt i filen, python.txt og dette ordet finnes i den andre linjen i denne filen. Så, 'til 'Med mellomrom legges til etter den matchende teksten.
24. Erstatt en liste med strenger med den nye strengen
Du må opprette to listefiler for å teste dette eksemplet. Lag en tekstfil med navnet list1.txt og legg til følgende innhold.
katteliste1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Lag en tekstfil med navnet list2.txt og legg til følgende innhold.
$ cat list2.txt
1001CSE GPA3,631002CSE GPA3,24
1023CSE GPA3.11
1067CSE GPA3,84
Følgende kommando `sed` vil matche den første kolonnen av de to tekstfilene som vises ovenfor og erstatte den matchende teksten med verdien av den tredje kolonnen i filen list1.txt.
$kattlist1.txt$kattlist2.txt
$sed ``kattlist1.txt| awk '{print' -e s / '$ 1' / '$ 3' / '}'``<<<'`katteliste2.txt`'
Produksjon:
1001, 1023 og 1067 av list1.txt fil samsvarer med de tre dataene til list2.txt fil og disse verdiene erstattes av tilsvarende navn på den tredje kolonnen i list1.txt .
25. Erstatt den matchende strengen med en streng som inneholder nye linjer
Følgende kommando tar innspill fra kommandoen `ekko` og søker etter ordet, 'Python' i teksten. Hvis ordet finnes i teksten, så en ny tekst, 'Lagt til tekst' vil bli satt inn med ny linje. $ echo Bash Perl Python Java PHP ASP | sed ‘s/Python/Added Text n/’ Produksjon: Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
26. Fjern nye linjer fra filen og sett inn et komma på slutten av hver linje
Følgende kommando `sed` erstatter hver ny linje med et komma i filen os.txt . Her, -Med alternativet brukes til å skille linjen med NULL -tegn.
$sed -Med 's/ n/,/g'os.txtProduksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
27. Fjern kommaer og legg til ny linje for å dele teksten i flere linjer
Følgende kommando `sed` tar kommaseparert linje fra kommandoen` ekko` som input og erstatter komma med ny linje.
$kastet ut 'Kaniz Fatema, 30., batch' | sed er/,/ n/g 'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Inngangsteksten inneholder tre kommaadskilte data som erstattes av ny linje og skrives ut på tre linjer.
28. Finn store bokstaver som er ufølsomme og slett linjen
'I' brukes i kommandoen 'sed' for den uvesentlige matchingen som indikerer ignorer store og små bokstaver. Følgende kommando `sed` vil søke etter linjen som inneholder ordet, 'Linux 'Og slett linjen fra os.txt fil.
$kattos.txt$sed '/linux/Id'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. os.txt inneholder ordet 'Linux' som samsvarer med mønsteret, 'linux' for uønsket søk og slettet.
29. Finn store og små bokstaver som er ufølsomme og erstatt med ny tekst
Den følgende 'sed' -kommandoen tar input fra kommandoen' echo 'og erstatter ordet' bash 'med ordet' PHP '.
$kastet ut 'Jeg liker bash programmering' | sed 's/Bash/PHP/i'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Her matchet ordet 'Bash' med ordet 'bash' for uvesentlig søk og erstattet av ordet 'PHP'.
30. Finn store bokstaver i samme tekst, og erstatt med store bokstaver
' U' brukes i `sed` for å konvertere tekst til alle store bokstaver. Følgende kommando `sed` vil søke etter ordet, 'Linux 'I os.txt filen, og hvis ordet eksisterer, vil det erstatte ordet med alle store bokstaver.
$kattos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Ordet 'Linux' i os.txt -filen erstattes av ordet 'LINUX'.
31. Finn store bokstaver som er ufølsomme og erstatt med alle små bokstaver i samme tekst
'DE' brukes i `sed` for å konvertere tekst til alle små bokstaver. Følgende kommando `sed` vil søke etter ordet, 'Linux' i os.txt fil og erstatt ordet med alle små bokstaver.
$kattos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Ordet 'Linux' erstattes av ordet 'linux' her.
32. Erstatt alle store bokstaver i teksten med små bokstaver
Følgende kommando `sed` søker i alle store bokstaver i os.txt fil og erstatt tegnene med små bokstaver ved å bruke ‘ L’.
$kattos.txt$sed 's/ (.*)/ L 1/'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
33. Søk etter tall på linje og legg til et valutasymbol før Nummer
Lag en fil med navnet items.txt med følgende innhold.
items.txt
HDD 100Skjerm 80
Mus 10
Følgende kommando `sed` vil søke etter nummeret på hver linje av items.txt fil og legg til valutasymbolet '$' før hvert tall.
$kattitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Her legges ‘$’ -symbolet til før hver linje.
34. Legg kommaer til tall som har mer enn 3 sifre
Den følgende `sed` -kommandoen tar et tall som input fra` echo` -kommandoen og legger til komma etter hver gruppe på tre sifre som teller fra høyre. Her indikerer ': a' etiketten og 'ta' brukes til å gjenta gruppeprosessen.
$kastet ut '5098673' | sed -Og:til-Og 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Produksjon:
Tallet 5098673 er gitt i kommandoen 'echo' og kommandoen 'sed' genererte tallet 5.098.673 ved å legge til komma etter hver gruppe på tre sifre.
35. Erstatter fanetegn med 4 mellomromstegn
Følgende kommando `sed` erstatter hver kategori ( t) med fire mellomromstegn. '$' -Symbolet brukes i kommandoen 'sed' for å matche fanetegnet og 'g' brukes til å erstatte alle fanetegn.
$kastet ut -Og '1 t2 t3 ' | sed$'s/ t//g'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
36. Erstatter 4 påfølgende mellomromstegn med tabulatortegn
Følgende kommando erstatter fire påfølgende tegn med tabulatortegn ( t).
$kastet ut -Og '1 2' | sed$'s// t/g'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
37. Avkort alle linjene til de første 80 tegnene
Lag en tekstfil med navnet in.txt som inneholder linjene mer enn 80 tegn for å teste dette eksemplet.
in.txt
PHP er et skriptspråk på serversiden.
PHP er et åpen kildespråk, og PHP er skift mellom store og små bokstaver. PHP er plattformuavhengig.
Følgende kommando `sed` vil avkorte hver linje av in.txt fil til 80 tegn.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Den andre linjen med in.txt -filen inneholder mer enn 80 tegn, og denne linjen er avkortet i utdataene.
38. Søk etter en strengregeks og legg til litt standardtekst etter den
Følgende kommando `sed` søker i teksten, Hallo 'I inndatateksten og legg til teksten,' John 'Etter den teksten.
$kastet ut 'Hei, hvordan har du det?' | sed 's/ (hei )/ 1 John/'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
39. Søk etter strengregeks og legg til litt tekst etter den andre kampen i hver linje
Følgende kommando `sed` søker i teksten, PHP 'I hver linje av input.txt og erstatt den andre matchen på hver linje med teksten, 'Ny tekst lagt til' .
$kattinput.txt$sed 's/ (PHP )/ 1 (Ny tekst lagt til)/2'input.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. Søketeksten, ' PHP 'Vises to ganger i den andre og tredje linjen av input.txt fil. Så teksten ' Ny tekst lagt til 'Er satt inn på andre og tredje linje.
40. Kjører flerlinjes `sed`-skript fra en fil
Flere `sed` -skript kan lagres i en fil, og alle skriptene kan kjøres sammen ved å kjøre` sed` -kommandoen. Lag en fil med navnet 'Sedcmd 'Og legg til følgende innhold. Her blir to `sed` -skript lagt til i filen. Ett skript erstatter teksten ' PHP ' av 'ASP 'Et annet skript vil erstatte teksten,' uavhengig 'Etter teksten,' avhengig '.
sedcmd
s/PHP/ASP/s/uavhengig/avhengig/
Følgende kommando `sed` vil erstatte all' PHP 'og' uavhengig 'tekst med' ASP 'og' avhengig '. Her brukes alternativet '-f' i kommandoen 'sed' for å utføre 'sed' -skriptet fra filen.
$kattsedcmd$sed -fsedcmd input.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoer over.
41. Match et flerlinjers mønster og bytt ut med ny tekst med flere linjer
Følgende kommando `sed` søker i teksten med flere linjer, 'Linux nAndroid' og hvis mønsteret samsvarer, blir matchende linjer erstattet av tekst med flere linjer, 'Ubuntu nAndroid Lollipop '. Her brukes P og D til behandling med flere linjer.
$kattos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
42. Erstatt rekkefølgen på to ord i en tekst som matcher et mønster
Følgende kommando `sed` tar inn to ord fra kommandoen` ekko` og erstatter rekkefølgen på disse ordene.
$kastet ut 'perl python' | sed -Og 's/ ([^]*)* ([^]*)/ 2 1/'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
43. Utfør flere `sed`-kommandoer fra kommandolinjen
'-E' alternativet brukes i kommandoen 'sed' for å kjøre flere 'sed' skript fra kommandolinjen. Den følgende `sed` -kommandoen tar en tekst som input fra` echo` -kommandoen og erstatter ' Ubuntu ' av ' Kubuntu 'Og' hundrevis ' av ' Fedora '.
$kastet ut 'Ubuntu Centos Debian' | sed -Og 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Her erstattes 'Ubuntu' og 'Centos' med 'Kubuntu' og 'Fedora'.
44. Kombiner `sed` med andre kommandoer
Følgende kommando vil kombinere kommandoen `sed` med` cat` -kommandoen. Den første `sed` -kommandoen tar innspill fra os.txt filen og send utgangen av kommandoen til den andre `sed` -kommandoen etter at teksten 'Linux' ble erstattet av 'Fedora'. Den andre `sed` -kommandoen erstatter teksten' Windows 'med' Windows 10 '.
$kattos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
45. Sett inn en tom linje i en fil
Lag en fil med navnet stdlist med følgende innhold.
stdlist
#ID #Name[101] -Men
[102] -Neha
'G' -alternativet brukes til å sette inn tom linje i en fil. Følgende kommando `sed` vil sette inn tomme linjer etter hver linje med stdlist fil.
$kattstdlist$sedG stdlist
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor. En tom linje settes inn etter hver linje i filen.
46. Erstatt alle alfanumeriske tegn med mellomrom på hver linje i en fil.
Følgende kommando erstatter alle alfanumeriske tegn med mellomrom i stdlist fil.
$kattstdlist$ men 's / [A-Za-z0-9] // g'stdlist
Produksjon:
Følgende utdata vises etter at du har kjørt kommandoene ovenfor.
47. Bruk ‘&’ til å skrive ut matchende streng
Den følgende kommandoen søker etter ordet som begynner med ‘L’ og erstatter teksten med å legge til 'Matchet streng er - 'Med det matchende ordet ved å bruke' & '-symbolet. Her brukes 'p' for å skrive ut den endrede teksten.
$sed -n 's/^L/Matchet streng er - &/p'os.txtProduksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor.
48. Bytt par ord i en fil
Lag en tekstfil med navnet course.txt med følgende innhold som inneholder ordparet på hver linje.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Følgende kommando vil bytte ordpar på hver linje i filen, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtProduksjon:
Følgende utgang vil vises etter at du har byttet ordpar på hver linje.
49. Bruk den store bokstaven i hvert ord
Den følgende `sed` -kommandoen tar input -tekst fra` echo` -kommandoen og konverterer det første tegnet i hvert ord til en stor bokstav.
$kastet ut 'Jeg liker bash programmering' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Produksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Inngangsteksten, jeg liker bash -programmering skrives ut som I Like Bash -programmering etter å ha brukt det første ordet.
50. Skriv ut linjenumre for filen
'=' Symbol brukes 'sed' kommando for å skrive ut linjenummeret før hver linje i en fil. Følgende kommando vil skrive ut innholdet i os.txt fil med linjenummer.
$sed '='os.txtProduksjon:
Følgende utdata vises etter at du har kjørt kommandoen ovenfor. Det er fire linjer i os.txt fil. Så linjenummeret skrives ut før hver linje i filen.
Konklusjon:
Ulike bruksområder for `sed` -kommandoen forklares i denne opplæringen ved å bruke veldig enkle eksempler. Utdataene fra alle `sed` -skriptene som er nevnt her, genereres midlertidig, og innholdet i den originale filen forble uendret. Men hvis du vil, kan du endre den opprinnelige filen ved å bruke –i eller –in-place alternativet `sed command. Hvis du er en ny Linux -bruker og ønsker å lære de grunnleggende bruksområdene for `sed` -kommandoen for å utføre forskjellige typer strengmanipuleringsoppgaver, vil denne opplæringen hjelpe deg. Etter å ha lest denne opplæringen, håper alle brukere vil få et klart konsept om funksjonene til `sed` -kommandoen.
ofte stilte spørsmål
Hva brukes sed -kommandoen til?
Sed -kommandoen har en rekke forskjellige bruksområder. Når det er sagt, er hovedbruken å erstatte ord i en fil, eller finne og erstatte.
Det flotte med sed er at du kan søke etter et ord i en fil og erstatte det, men du trenger ikke engang å åpne filen - sed gjør alt for deg!
I tillegg til dette kan den brukes til sletting. Alt du trenger å gjøre er å skrive inn ordet du vil finne, erstatte eller slette i sed, og det tar det opp for deg - du kan deretter velge å erstatte det ordet eller slette alle spor av ordet fra filen.
sed er et fantastisk verktøy for å kunne erstatte ting som IP -adresser og alt som er svært følsomt som du ellers ikke ville legge inn en fil. sed er et must-know for enhver programvareingeniør!
Hva er S og G i sed kommando?
I sine mest enkle termer betyr S -funksjonen som kan brukes i sed ganske enkelt 'erstatning'. Etter å ha skrevet S kan du erstatte eller erstatte alt du ønsker - bare å skrive S vil bare erstatte den første forekomsten av ordet på en linje.
Derfor, hvis du har en setning eller linje som nevner det mer enn én gang, er ikke S -funksjonen ideell, da den bare vil erstatte den første forekomsten. Du kan også angi et mønster for å få S til å erstatte ord hver annen forekomst.
Spesifisering av G på slutten av sed -kommandoen vil gjøre en global erstatning (det er det G står for). Med dette i tankene, hvis du angir G, vil det erstatte hver forekomst av ordet du har valgt, i stedet for bare den første forekomsten som S gjør.
Hvordan kjører jeg et sed script?
Du kan kjøre et sed -skript på en rekke måter, men det vanligste er på kommandolinjen. Her kan du bare spesifisere sed og filen du vil bruke kommandoen på.
Dette lar deg bruke sed på den filen, slik at du kan finne, slette og erstatte etter behov.
Du kan også bruke det i et skallskript, og på denne måten kan du sende det du vil til skriptet, og det vil kjøre finne og erstatte kommandoen for deg. Dette er nyttig hvis du ikke vil spesifisere svært sensitive data i et skript, så i stedet kan du sende dem inn som en variabel
Husk at dette selvfølgelig bare er tilgjengelig på Linux, og derfor må du sørge for at du har en Linux -kommandolinje for å kjøre sed -skriptet ditt.