Följande utdata visar att GNU Sed av version 4.4 är installerat i systemet.
Syntax:
sed [alternativ]...[manus] [fil]
Om inget filnamn har kommandot 'sed', kommer skriptet att fungera med standardinmatningsdata. Skriptet 'sed' kan köras utan något alternativ.
Innehåll :
- Grundläggande textbyte med 'sed'
- Ersätt alla förekomster av en text i en viss rad i en fil med alternativet ‘g’
- Ersätt bara den andra förekomsten av en matchning på varje rad
- Ersätt bara den sista förekomsten av en matchning på varje rad
- Ersätt den första matchningen i en fil med ny text
- Ersätt den sista matchningen i en fil med ny text
- Undvik backslash i ersätt kommandon för att hantera sökning och ersättning av filvägar
- Ersätt alla filer hela sökvägen med bara filnamnet ingen katalog
- Ersätt text men bara om någon annan text finns i strängen
- Ersätt text men bara om någon annan text inte finns i strängen
- Lägg till sträng före matchningsmönstret med ' 1 '
- Ta bort matchande rader
- Radera matchande rad och 2 rader efter matchande rad
- Radera alla mellanslag i slutet av textraden
- Radera alla rader som matchar två gånger på raden
- Ta bort alla rader som har det enda blanksteget
- Radera alla tecken som inte går att skriva ut
- Om det finns en match i raden lägg till något i slutet av raden
- Om det finns en matchning i raden infoga raden före matchen
- Om det finns en matchning i linjen infoga raden efter matchen
- Om det inte finns en match, lägg till något i slutet av raden
- Om det inte finns någon match, radera raden
- Dubbla matchade texter efter att ha lagt till ett mellanslag efter texten
- Ersätt en av stränglistorna med den nya strängen
- Ersätt en matchad sträng med en sträng som innehåller nya rader
- Ta bort nya rader från filen och sätt in ett komma i slutet av varje rad
- Ta bort kommatecken och lägg till nya rader för att dela upp texten i flera rader
- Hitta skiftlägeskänslig matchning och radera rad
- Hitta skiftlägeskänslig matchning och ersätt med ny text
- Leta reda på omständigheter som är okänsliga och ersätt med alla versaler i samma text
- Hitta skiftlägeskänslig matchning och ersätt med alla små bokstäver i samma text
- Ersätt alla stora tecken i texten med små bokstäver
- Sök efter numret i raden och lägg till valutasymbolen efter numret
- Lägg till kommatecken till siffror som har mer än 3 siffror
- Ersätt tabbtecken med 4 mellanslagstecken
- Ersätt 4 på varandra följande blanksteg med ett tabbtecken
- Avkorta alla rader till de första 80 tecknen
- Sök efter en strängregex och lägg till lite standardtext efter den
- Sök efter en strängregex och en andra kopia av den hittade strängen efter den
- Kör flera rader `sed`-skript från en fil
- Matcha ett flerradigt mönster och ersätt med ny text med flera rader
- Ersätt ordningen för två ord som matchar ett mönster
- Använd flera sed-kommandon från kommandoraden
- Kombinera sed med andra kommandon
- Infoga en tom rad i en fil
- Radera alla alfanumeriska tecken från varje rad i en fil.
- Använd '&' för att matcha sträng
- Byt par ord
- Använd den första bokstaven i varje ord
- Skriv ut radnummer för filen
1. Grundläggande textersättning med ‘sed’
Varje viss del av en text kan sökas och ersättas genom att använda sök- och ersättningsmönster med kommandot 'sed'. I följande exempel anger 's' sök- och ersättningsuppgiften. Ordet 'Bash' kommer att sökas i texten, Bash Scripting Language och om ordet finns i texten kommer det att ersättas av ordet 'Perl'.
$kastade ut 'Bash Scripting Language' | sed 's/Bash/Perl/'
Produktion:
Ordet 'Bash' finns i texten. Så utgången är 'Perl Scripting Language'.
'sed' -kommandot kan också användas för att ersätta alla delar av ett filinnehåll. Skapa en textfil med namnet vardag.txt med följande innehåll.
vardag.txt
MåndagTisdag
Onsdag
Torsdag
fredag
Lördag
Söndag
Följande kommando söker och ersätter texten 'söndag', med texten 'söndag är helgdag'.
$kattvardag.txt$sed 's/söndag/söndag är semester/'vardag.txt
Produktion:
'Söndag' finns i filen weekday.txt och detta ord ersätts med texten 'söndag är helgdag' efter att ha utfört ovanstående 'sed' -kommando.
2. Ersätt alla förekomster av en text i en viss rad i en fil med alternativet ‘g’
'G' -alternativet används i 'sed' -kommandot för att ersätta alla förekomster av matchande mönster. Skapa en textfil med namnet python.txt med följande innehåll för att veta användningen av alternativet 'g'. Denna fil innehåller ordet. 'Pytonorm' flera gånger.
python.txt
Python är ett mycket populärt språk.
Python är lätt att använda. Python är lätt att lära sig.
Python är ett plattformsoberoende språk
Följande kommando kommer att ersätta alla förekomster av ' Pytonorm 'I den andra raden i filen, python.txt . Här, 'Pytonorm' förekommer två gånger i den andra raden.
$ cat python.Text$ sed'2 s / Python / perl / g'pytonorm.Text
Produktion:
Följande utdata visas efter att manuset har körts. Här ersätts all förekomst av 'Python' i den andra raden med 'Perl'.
3. Ersätt bara den andra förekomsten av en matchning på varje rad
Om något ord visas flera gånger i en fil kan den särskilda förekomsten av ordet i varje rad ersättas med kommandot 'sed' med förekomstnumret. Följande kommando `sed` ersätter den andra förekomsten av sökmönstret i varje rad i filen, python.txt .
$ sed's/Python/perl/g2'pytonorm.TextProduktion:
Följande utdata visas efter att ha kört ovanstående kommando. Här är den sökande texten, ' Pytonorm' visas bara två gånger på den andra raden och ersätts med texten ' Perl '.
4. Ersätt bara den sista förekomsten av en matchning på varje rad
Skapa en textfil med namnet lang.txt med följande innehåll.
lang.txt
Bash programmeringsspråk. Python programmeringsspråk. Perl programmeringsspråk.
Hypertext Markup Language.
Utökningsbart markeringsspråk.
5. Ersätt den första matchningen i en fil med ny text
Följande kommando ersätter endast den första matchningen i sökmönstret, ' Pytonorm 'Vid texten, ’Perl ’. Här, '1' används för att matcha den första förekomsten av mönstret.
$ cat python.Text$ sed'1 s / Python / perl /'pytonorm.Text
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Här. den första förekomsten av 'Python' på den första raden ersätts med 'perl'.
6. Ersätt den senaste matchningen i en fil med ny text
Följande kommando kommer att ersätta den senaste förekomsten av sökmönstret, 'Pytonorm 'Vid texten, 'Våldsamt slag'. Här, '$' symbolen används för att matcha mönsterets senaste förekomst.
$ cat python.Text$ sed -e'$ s / Python / Bash /'pytonorm.Text
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
7. Undvik backslash i ersättningskommandon för att hantera sökning och ersättning av filvägar
Det är nödvändigt att undvika omvänd snedstreck i filvägen för att söka och ersätta. Följande kommando för 'sed' lägger till backslash () i filvägen.
$kastade ut /Hem/ubuntu/koda/perl/add.pl| sed 's; /; \ /; g'Produktion:
Filvägen, ‘/Home/ubuntu/code/perl/add.pl’ tillhandahålls som inmatning i kommandot 'sed' och följande utdata visas efter att ovanstående kommando har körts.
8. Ersätt alla filer hela sökvägen med bara filnamnet ingen katalog
Filnamnet kan hämtas från filvägen mycket enkelt med hjälp av ` basnamn ' kommando. kommandot 'sed' kan också användas för att hämta filnamnet från filsökvägen. Följande kommando hämtar endast filnamnet från filsökvägen från kommandot 'echo'.
$kastade ut '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Här, filnamnet, ' myfile.txt ’ skrivs ut som utmatning.
9. Ersätt text men bara om någon annan text finns i strängen
Skapa en fil med namnet ‘ dept.txt ’ med följande innehåll för att ersätta eventuell text baserad på annan text.
avd. txt
Lista över totala studenter:
CSE - CountEEE - Count
Civil - Greve
Två ersättningskommandon används i följande kommando `sed`. Här står texten ' Räkna 'Kommer att ersättas av 100 på raden som innehåller texten, 'CSE 'Och texten' Räkna' kommer att ersättas av 70 på raden som innehåller sökmönstret, ' EEE ’ .
$kattavd. txt$sed -Och '/CSE/s/Count/100/; /EEE/s/Count/70/; 'avd. txt
Produktion:
Följande utdata visas efter att kommandona ovan körts.
10. Ersätt text men bara om någon annan text inte finns i strängen
Följande kommando 'sed' kommer att ersätta 'Count' -värdet på raden som inte innehåller texten 'CSE'. avd. txt filen innehåller två rader som inte innehåller texten 'CSE'. Så, ' Räkna 'Texten kommer att ersättas med 80 på två rader.
$kattavd. txt$sed -i -Och '/CSE/! s/Count/80/; 'avd. txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
11. Lägg till sträng före och efter matchningsmönstret med ‘ 1’
Sekvensen för matchande mönster för kommandot 'sed' betecknas med ' 1', ' 2' och så vidare. Följande kommando 'sed' söker efter mönstret 'Bash' och om mönstret matchar kommer det att nås med ' 1' i den del av texten som ersätts. Här söks texten 'Bash' i inmatningstexten och en text läggs till före och en annan text läggs till efter ' 1'.
$kastade ut 'Bash -språk' | sed 's/ (Bash )/Lär dig 1 programmering/'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Här, ' Lära sig' text läggs till innan 'Våldsamt slag' och ' programmering 'Text läggs till efter' Våldsamt slag'.
12. Radera matchande rader
'D' alternativet används i `sed` -kommandot för att radera en rad från filen. Skapa en fil med namnet os.txt och lägg till följande innehåll för att testa funktionen 'D' alternativ.
katt os.txt
WindowsLinux
Android
DU
Följande kommando `sed 'raderar dessa rader från os.txt fil som innehåller texten 'OS'.
$kattos.txt$sed '/The D'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
13. Radera matchande rad och 2 rader efter matchande rad
Följande kommando tar bort tre rader från filen os.txt om mönstret, ' Linux ' är hittad. os.txt innehåller texten, 'Linux 'I andra raden. Så den här raden och de två följande raderna kommer att raderas.
$sed ' / Linux /, + 2d'os.txtProduktion:
Följande utdata visas efter att ha kört ovanstående kommando.
14. Radera alla mellanslag i slutet av textraden
Använder sig av [:tom:] class kan användas för att ta bort mellanslag och flikar från texten eller innehållet i en fil. Följande kommando tar bort mellanslag i slutet av varje rad i filen, os.txt.
$kattos.txt$sed 's/[[: blank:]]*$ //'os.txt
Produktion:
os.txt innehåller tomma rader efter varje rad som raderas med kommandot `sed` ovan.
15. Radera alla rader som har en match två gånger på raden
Skapa en textfil med namnet, input.txt med följande innehåll och ta bort de raderna i filen som innehåller sökmönstret två gånger.
input.txt
PHP är ett skriptspråk på serversidan.
PHP är ett öppen källkodsspråk och PHP är skiftlägeskänsligt.
PHP är plattformsoberoende.
'PHP' -text innehåller två gånger på den andra raden i filen, input.txt . Två 'sed' -kommandon används i detta exempel för att ta bort de rader som innehåller mönstret' php ' två gånger. Det första 'sed' -kommandot ersätter den andra förekomsten av' php 'i varje rad med' dl 'Och skicka utmatningen till det andra' sed '-kommandot som inmatning. Det andra kommandot 'sed' raderar de rader som innehåller texten ' dl '.
$kattinput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Produktion:
input.txt filen har två rader som innehåller mönstret, 'Php' två gånger. Så kommer följande utdata att visas efter att ha kört ovanstående kommandon.
16. Radera alla rader som bara har blanksteg
Välj en fil som innehåller tomma rader i innehållet för att testa detta exempel. input.txt filen som skapas i föregående exempel innehåller två tomma rader som kan tas bort med följande kommando 'sed'. Här används '^$' för att ta reda på de tomma raderna i filen, input.txt.
$kattinput.txt$sed '/^$/d'input.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
17. Radera alla tecken som inte går att skriva ut
Icke-utskrivbara tecken kan tas bort från vilken text som helst genom att ersätta icke-skrivbara tecken med ingen. [: print:] -klassen används i detta exempel för att ta reda på de icke-skrivbara tecknen. ' T' är ett tecken som inte går att skriva ut och det kan inte analyseras direkt av kommandot 'echo'. För detta tilldelas ' t' tecken i en variabel, $ tab som används i ett 'echo' kommando. Utmatningen från kommandot 'echo' skickas med kommandot 'sed' som tar bort tecknet ' t' från utdata.
$flik= $'t'$kastade ut 'Hej$ tabWorld'
$kastade ut 'Hej$ tabWorld' | sed 's/[^[: print:]] // g'
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Det första `echo -kommandot kommer att skriva ut utskriften med flikutrymme och` sed` -kommandot kommer att skriva ut utmatningen efter att flikutrymmet har tagits bort.
18. Om det finns en match i raden lägg till något i slutet av raden
Följande kommando lägger till '10' i slutet av raden som innehåller texten 'Windows' i os.txt fil.
$kattos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Produktion:
Följande utdata visas efter att kommandot körts.
19. Om det finns en matchning på raden sätter du in en rad före texten
Följande kommando 'sed' söker i texten ' PHP är plattformsoberoende ' i input.txt fil som har skapats tidigare. Om filen innehåller denna text på någon rad, ' PHP är ett tolkat språk ’ infogas före den raden.
$kattinput.txt$sed '/PHP är plattformsoberoende/s/^/PHP är ett tolkat språk. N/'input.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
20. Om det finns en matchning i raden sätter du in en rad efter den raden
Följande kommando 'sed' söker i texten ' Linux ’ i filen os.txt och om texten finns på någon rad så kommer en ny text, ' Ubuntu Kommer att infogas efter den raden.
$kattos.txt$sed 's/Linux/& nUbuntu/'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
21. Om det inte finns en match, lägg till något i slutet av raden
Följande kommando `sed` söker igenom dessa rader os.txt som inte innehåller texten, 'Linux' och lägg till texten ' Operativ system 'I slutet av varje rad. Här, ' $ 'Symbolen används för att identifiera raden där den nya texten kommer att läggas till.
$kattos.txt$sed '/Linux/! S/$/Operativsystem/'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Det finns tre rader i filen os.txt som inte innehåller texten 'Linux' och de nya texterna som läggs till i slutet av dessa rader.
22. Om det inte finns någon match, radera raden
Skapa en fil med namnet web.txt och lägg till följande innehåll och radera rader som inte innehåller matchande mönster. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Följande kommando `sed 'söker och tar bort de rader som inte innehåller texten' CSS '. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Produktion: Följande utdata visas efter att ha kört ovanstående kommandon. Det finns en rad i filen som innehåller texten 'CSE'. Så, utmatningen innehåller bara en rad.
23. Kopiera matchad text efter att du har lagt till ett mellanslag efter texten
Följande kommando 'sed' söker efter ordet 'till' i filen, python.txt och om ordet finns kommer samma ord att infogas efter sökordet genom att lägga till mellanslag. Här, '&' symbolen används för att lägga till dubbletttexten.
$kattpython.txt$sed -Och 's / to / & to / g'python.txt
Produktion:
Följande utdata visas efter att kommandona har körts. Här söks ordet 'till' i filen, python.txt och detta ord finns på den andra raden i den här filen. Så, 'till 'Med mellanslag läggs till efter matchande text.
24. Ersätt en lista med strängar med den nya strängen
Du måste skapa två listfiler för att testa detta exempel. Skapa en textfil med namnet list1.txt och lägg till följande innehåll.
kattlista1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Skapa en textfil med namnet list2.txt och lägg till följande innehåll.
$ cat list2.txt
1001CSE GPA3,631002CSE GPA3,24
1023CSE GPA3.11
1067CSE GPA3,84
Följande kommando `sed` matchar den första kolumnen i de två textfilerna som visas ovan och ersätter den matchande texten med värdet för den tredje kolumnen i filen list1.txt.
$kattlist1.txt$kattlist2.txt
$sed ''kattlist1.txt| ock '{print' -e s / '$ 1' / '$ 3' / '}'''<<<'`kattlista2.txt`'
Produktion:
1001, 1023 och 1067 av list1.txt filmatchning med tre data från list2.txt fil och dessa värden ersätts med motsvarande namn på den tredje kolumnen i list1.txt .
25. Ersätt den matchade strängen med en sträng som innehåller nya rader
Följande kommando tar inmatning från kommandot 'echo' och söker efter ordet, 'Pytonorm' i texten. Om ordet finns i texten då en ny text, 'Tillagd text' infogas med ny rad. $ echo Bash Perl Python Java PHP ASP | sed ‘s/Python/Added Text n/’ Produktion: Följande utdata visas efter att ha kört ovanstående kommando.
26. Ta bort nya rader från filen och sätt in ett komma i slutet av varje rad
Följande kommando `sed` ersätter varje ny rad med ett komma i filen os.txt . Här, -Med alternativet används för att skilja raden med NULL -tecken.
$sed -Med 's/ n/,/g'os.txtProduktion:
Följande utdata visas efter att ha kört ovanstående kommando.
27. Ta bort kommatecken och lägg till ny rad för att dela upp texten i flera rader
Följande kommando 'sed' tar den kommaseparerade raden från kommandot 'echo' som inmatning och ersätter kommat med ny rad.
$kastade ut 'Kaniz Fatema, 30: e, sats' | sed s/,/ n/g 'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Inmatningstexten innehåller tre kommaseparerade data som ersätts med ny rad och skrivs ut på tre rader.
28. Hitta skiftlägeskänslig matchning och radera rad
'Jag' används i kommandot 'sed' för den skiftlägeskänsliga matchningen som indikerar ignorera fall. Följande kommando `sed` söker efter raden som innehåller ordet, 'Linux Och radera raden från os.txt fil.
$kattos.txt$sed '/linux/Id'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. os.txt innehåller ordet 'Linux' som matchade mönstret, 'linux' för skiftlägeskänslig sökning och raderad.
29. Hitta skiftlägeskänslig matchning och ersätt med ny text
Följande kommando 'sed' tar inmatningen från kommandot 'echo' och ersätter ordet 'bash' med ordet 'PHP'.
$kastade ut 'Jag gillar bash programmering' | sed 's/Bash/PHP/i'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Här matchade ordet 'Bash' med ordet 'bash' för sökning som inte är skiftlägeskänslig och ersatt med ordet 'PHP'.
30. Hitta skiftlägeskänslig matchning och ersätt med alla versaler av samma text
' U' används i 'sed' för att konvertera text till alla stora bokstäver. Följande kommando `sed` söker efter ordet, 'Linux ’I os.txt fil och om ordet existerar kommer det att ersätta ordet med alla stora bokstäver.
$kattos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Ordet 'Linux' i filen os.txt ersätts med ordet 'LINUX'.
31. Hitta skiftlägeskänslig matchning och ersätt med alla små bokstäver i samma text
'DE' används i 'sed' för att konvertera text till alla små bokstäver. Följande kommando `sed` söker efter ordet, 'Linux' i os.txt fil och ersätt ordet med alla gemener.
$kattos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Ordet 'Linux' ersätts av ordet 'Linux' här.
32. Ersätt alla stora tecken i texten med små bokstäver
Följande kommando `sed` söker efter alla stora tecken i os.txt fil och ersätt tecknen med gemener med ' L'.
$kattos.txt$sed 's/ (.*)/ L 1/'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
33. Sök efter nummer i raden och lägg till valutasymbolen före siffra
Skapa en fil med namnet items.txt med följande innehåll.
items.txt
HDD 100Bildskärm 80
Mus 10
Följande kommando `sed` söker efter numret i varje rad av items.txt fil och lägg till valutasymbolen '$' före varje nummer.
$kattitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Här läggs '$' -symbolen till före varje rad.
34. Lägg till kommatecken till tal som har mer än 3 siffror
Följande kommando 'sed' tar ett tal som inmatning från kommandot 'echo' och lägger till komma efter varje grupp om tre siffror som räknas från höger. Här anger ': a' etiketten och 'ta' används för att iterera grupperingsprocessen.
$kastade ut '5098673' | sed -Och:till-Och 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Produktion:
Talet 5098673 ges i kommandot 'echo' och kommandatet 'sed' genererade talet 5098673 genom att lägga till komma efter varje grupp om tre siffror.
35. Ersätter tabbtecken med 4 mellanslagstecken
Följande kommando `sed` ersätter varje flik ( t) med fyra blanksteg. '$' -Symbolen används i kommandot 'sed' för att matcha tabbtecknet och 'g' används för att ersätta alla flikstecken.
$kastade ut -Och '1 t2 t3 ' | sed$'s/ t//g'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando.
36. Ersätter 4 på varandra följande blanksteg med tabbtecken
Följande kommando kommer att ersätta 4 på varandra följande tecken med tabbtecken ( t).
$kastade ut -Och '1 2' | sed$'s// t/g'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando.
37. Avkorta alla rader till de första 80 tecknen
Skapa en textfil med namnet in.txt som innehåller raderna mer än 80 tecken för att testa detta exempel.
in.txt
PHP är ett skriptspråk på serversidan.
PHP är ett öppen källkodsspråk och PHP är skiftlägeskänsligt. PHP är plattformsoberoende.
Följande kommando `sed` kommer att stympa varje rad av in.txt fil på 80 tecken.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Den andra raden med in.txt -fil innehåller mer än 80 tecken och den här raden avkortas i utdata.
38. Sök efter en strängregex och lägg till lite standardtext efter den
Följande kommando 'sed' söker i texten ' Hej 'I inmatningstexten och lägg till texten,' John 'Efter den texten.
$kastade ut 'Hej hur mår du?' | sed 's/ (hej )/ 1 John/'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando.
39. Sök efter strängregex och lägg till lite text efter den andra matchningen på varje rad
Följande kommando 'sed' söker i texten ' PHP 'I varje rad input.txt och ersätt den andra matchningen på varje rad med texten, 'Ny text tillagd' .
$kattinput.txt$sed 's/ (PHP )/ 1 (Ny text tillagd)/2'input.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. Den sökande texten, ' PHP 'Visas två gånger i den andra och tredje raden av input.txt fil. Så texten ' Ny text tillagd 'Infogas i den andra och tredje raden.
40. Kör flerradiga `sed`-skript från en fil
Flera `sed` -skript kan lagras i en fil och alla skript kan köras tillsammans genom att köra` sed` -kommandot. Skapa en fil med namnet ’Sedcmd 'Och lägg till följande innehåll. Här läggs två 'sed' -skript till i filen. Ett skript ersätter texten ' PHP ' förbi 'ASP 'Ett annat skript ersätter texten' självständig 'Enligt texten' beroende '.
sedcmd
s/PHP/ASP/s/självständig/beroende/
Följande kommando 'sed' kommer att ersätta all 'PHP' och 'oberoende' text med 'ASP' och 'beroende'. Här används alternativet '-f' i kommandot 'sed' för att utföra 'sed' -skript från filen.
$kattsedcmd$sed -fsedcmd input.txt
Produktion:
Följande utdata visas efter att ha körts ovanför kommandon.
41. Matcha ett flerradigt mönster och ersätt med ny text med flera rader
Följande kommando `sed` söker efter text med flera rader, 'Linux nAndroid' och om mönstret matchar kommer matchande rader att ersättas med text med flera rader, 'Ubuntu nAndroid Lollipop ’. Här används P och D för bearbetning med flera linjer.
$kattos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
42. Ersätt ordningen på två ord i en text som matchar ett mönster
Följande kommando 'sed' tar in två ord från kommandot 'echo' och ersätter ordens ordning.
$kastade ut 'perl python' | sed -Och 's/ ([^]*)* ([^]*)/ 2 1/'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando.
43. Utför flera 'sed'-kommandon från kommandoraden
'-E' -alternativet används i 'sed' -kommandot för att köra flera 'sed' -skript från kommandoraden. Följande kommando 'sed' tar en text som inmatning från kommandot 'echo' och ersätter ' Ubuntu ' förbi ' Kubuntu 'Och' hundratals ' förbi ' Fedora '.
$kastade ut 'Ubuntu Centos Debian' | sed -Och 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Här ersätts 'Ubuntu' och 'Centos' med 'Kubuntu' och 'Fedora'.
44. Kombinera `sed 'med andra kommandon
Följande kommando kombinerar kommandot 'sed' med kommandot 'cat'. Det första kommandot 'sed' tar inmatning från os.txt fil och skicka utmatningen av kommandot till det andra 'sed' -kommandot efter att texten' Linux 'har ersatts av' Fedora '. Det andra 'sed' -kommandot ersätter texten' Windows 'med' Windows 10 '.
$kattos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando.
45. Infoga tom rad i en fil
Skapa en fil med namnet stdlist med följande innehåll.
stdlist
#ID #Name[101] -Men
[102] -Neha
Alternativet ‘G’ används för att infoga en tom rad i en fil. Följande kommando `sed` infogar tomma rader efter varje rad av stdlist fil.
$kattstdlist$sedG stdlist
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon. En tom rad infogas efter varje rad i filen.
46. Ersätt alla alfanumeriska tecken med mellanslag i varje rad i en fil.
Följande kommando ersätter alla alfanumeriska tecken med mellanslag i stdlist fil.
$kattstdlist$ men 's / [A-Za-z0-9] // g'stdlist
Produktion:
Följande utdata visas efter att ha kört ovanstående kommandon.
47. Använd ‘&’ för att skriva ut matchad sträng
Följande kommando söker efter ordet som börjar med 'L' och ersätter texten med att lägga till 'Matchad sträng är - 'Med det matchade ordet genom att använda' & '-symbolen. Här används 'p' för att skriva ut den modifierade texten.
$sed -n 's/^L/Matchad sträng är - &/p'os.txtProduktion:
Följande utdata visas efter att ha kört ovanstående kommando.
48. Byt par ord i en fil
Skapa en textfil med namnet course.txt med följande innehåll som innehåller orden i varje rad.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Följande kommando kommer att byta ordpar på varje rad i filen, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtProduktion:
Följande utmatning visas när du har bytt ordpar på varje rad.
49. Använd den första bokstaven i varje ord
Följande kommando 'sed' tar inmatningstext från kommandot 'echo' och konverterar det första tecknet i varje ord till en stor bokstav.
$kastade ut 'Jag gillar bash programmering' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Produktion:
Följande utdata visas efter att ha kört ovanstående kommando. Inmatningstexten, jag gillar bash -programmering skrivs ut som I Like Bash -programmering efter att ha verserat det första ordet.
50. Skriv ut radnummer för filen
'=' Symbolen används 'sed' -kommandot för att skriva ut radnumret före varje rad i en fil. Följande kommando kommer att skriva ut innehållet i os.txt fil med radnummer.
$sed '='os.txtProduktion:
Följande utdata visas efter att ha kört ovanstående kommando. Det finns fyra rader i os.txt fil. Så radnumret skrivs ut före varje rad i filen.
Slutsats:
Olika användningsområden för `sed` -kommandot förklaras i denna handledning med hjälp av mycket enkla exempel. Utmatningen av alla 'sed' -skript som nämns här genereras tillfälligt och innehållet i den ursprungliga filen förblev oförändrat. Men om du vill kan du ändra den ursprungliga filen med hjälp av –i eller –in-place alternativet `sed command. Om du är en ny Linux -användare och vill lära dig de grundläggande användningarna av kommandot 'sed' för att utföra olika typer av strängmanipuleringsuppgifter, hjälper den här självstudien dig. Efter att ha läst denna handledning, hoppas, kommer alla användare att få ett tydligt koncept om funktionerna för `sed` -kommandot.
Vanliga frågor
Vad används sed -kommandot till?
Sed -kommandot har ett antal olika användningsområden. Med detta sagt är den huvudsakliga användningen att ersätta ord i en fil eller hitta och ersätta.
Det fina med sed är att du kan söka efter ett ord i en fil och ersätta det, men du behöver aldrig ens öppna filen - sed gör allt för dig!
Förutom detta kan den användas för radering. Allt du behöver göra är att skriva ordet du vill hitta, ersätta eller ta bort i sed, och det tar upp det för dig - du kan sedan välja att ersätta det ordet eller radera alla spår av ordet från din fil.
sed är ett fantastiskt verktyg för att kunna ersätta saker som IP -adresser och allt som är mycket känsligt som du annars inte skulle vilja lägga i en fil. sed är ett måste för alla mjukvaruutvecklare!
Vad är S och G i sed -kommando?
I sina enklaste termer betyder S -funktionen som kan användas i sed helt enkelt 'substitut'. Efter att ha skrivit S kan du byta ut eller ersätta allt du vill - bara att skriva S kommer bara att ersätta den första förekomsten av ordet på en rad.
Därför, om du har en mening eller rad som nämner det mer än en gång, är S -funktionen inte idealisk eftersom den bara kommer att ersätta den första förekomsten. Du kan också ange ett mönster för att S ska ersätta ord varannan gång.
Att specificera G i slutet av sed -kommandot kommer att göra en global ersättning (det är vad G står för). Med detta i åtanke, om du anger G kommer det att ersätta varje förekomst av ordet du har valt, snarare än bara den första förekomsten som S gör.
Hur kör jag ett sed script?
Du kan köra ett sed -skript på ett antal sätt, men det vanligaste är på kommandoraden. Här kan du bara ange sed och filen du vill använda kommandot på.
Detta låter dig använda sed på den filen, så att du kan hitta, ta bort och ersätta efter behov.
Du kan också använda det i ett skalskript, och på det här sättet kan du skicka vad du vill till skriptet, och det kommer att köra kommandot hitta och ersätta för dig. Detta är användbart för att inte vilja specificera mycket känslig data i ett skript, så istället kan du skicka in den som en variabel
Tänk på att detta naturligtvis bara är tillgängligt på Linux, så du måste se till att du har en Linux -kommandorad för att köra ditt sed -skript.