Sljedeći izlaz pokazuje da je GNU Sed verzije 4.4 instaliran u sustavu.
Sintaksa:
sed [mogućnosti]...[skripta] [datoteka]
Ako naziv datoteke ne sadrži naredbu `sed`, tada će skripta raditi na standardnim ulaznim podacima. Skripta `sed` može se izvesti bez ikakvih opcija.
Sadržaj :
- Osnovna zamjena teksta pomoću 'sed'
- Zamijenite sve instance teksta u određenom retku datoteke pomoću opcije 'g'
- Zamijenite drugu pojavu samo podudaranja u svakom retku
- Zamijenite posljednju pojavu samo podudaranja u svakom retku
- Zamijenite prvo podudaranje u datoteci novim tekstom
- Zamijenite posljednje podudaranje u datoteci novim tekstom
- Izbjegavanje obrnute kose crte u naredbama replace za upravljanje pretraživanjem i zamjenom putova datoteka
- Zamijenite sve datoteke punom putom samo s nazivom datoteke bez direktorija
- Zamijenite tekst, ali samo ako se u nizu pronađe neki drugi tekst
- Zamijenite tekst, ali samo ako neki drugi tekst nije pronađen u nizu
- Dodajte niz prije nakon odgovarajućeg uzorka koristeći ' 1 '
- Izbrišite podudarne retke
- Izbrišite odgovarajući redak i 2 retka nakon podudarnog retka
- Izbrišite sve razmake na kraju reda teksta
- Izbrišite sve retke koji se podudaraju dva puta na liniji
- Izbrišite sve retke koji imaju jedini razmak
- Izbrišite sve znakove koji se ne mogu ispisati
- Ako postoji podudaranje u redu, dodajte nešto na kraj retka
- Ako postoji podudaranje u retku za umetanje retka prije podudaranja
- Ako postoji podudaranje u retku za umetanje retka nakon podudaranja
- Ako nema podudaranja, dodajte nešto na kraj retka
- Ako nema podudaranja, izbrišite redak
- Duplirajte podudarni tekst nakon dodavanja razmaka nakon teksta
- Zamijenite jedan od popisa nizova novim nizom
- Zamijenite usklađeni niz nizom koji sadrži nove retke
- Uklonite nove retke iz datoteke i umetnite zarez na kraju svakog retka
- Uklonite zareze i dodajte nove retke da biste podijelili tekst u više redaka
- Pronađite podudaranje koje ne razlikuje velika i mala slova i izbrišite redak
- Pronađi podudaranje koje ne razlikuje velika i mala slova i zamijeni ga novim tekstom
- Pronađi podudaranje koje ne razlikuje velika i mala slova i zamijeni ih velikim slovima istog teksta
- Pronađi podudaranje koje ne razlikuje velika i mala slova i zamijeni ih malim slovima istog teksta
- Zamijenite sva velika slova u tekstu malim slovima
- Potražite broj u retku i dodajte broj valute iza broja
- Brojevima koji imaju više od 3 znamenke dodajte zareze
- Zamijenite znakove kartice s 4 razmaka
- Zamijenite 4 uzastopna razmaka znakom kartice
- Skraći sve retke na prvih 80 znakova
- Potražite regex niza i dodajte neki standardni tekst nakon njega
- Potražite regex niza i drugu kopiju pronađenog niza nakon njega
- Pokretanje više redaka `sed` skripti iz datoteke
- Uskladite višeredni uzorak i zamijenite ga novim višerednim tekstom
- Zamijenite redoslijed dviju riječi koje odgovaraju uzorku
- Koristite više sed naredbi iz naredbenog retka
- Kombinirajte sed s drugim naredbama
- Umetnite prazan redak u datoteku
- Izbrišite sve alfanumeričke znakove iz svakog retka datoteke.
- Upotrijebite '&' za podudaranje niza
- Zamijenite par riječi
- Prvo slovo svake riječi pisati velikim slovima
- Ispišite brojeve redaka datoteke
1. Osnovna zamjena teksta pomoću 'sed'
Bilo koji određeni dio teksta može se pretraživati i zamijeniti pomoću pretraživanja i zamjene uzorka pomoću naredbe `sed`. U sljedećem primjeru ‘s’ označava zadatak pretraživanja i zamjene. Riječ 'Bash' pretraživat će se u tekstu, Bash skriptni jezik, a ako riječ postoji u tekstu, zamijenit će se riječju 'Perl'.
$izbaciti 'Bash skriptni jezik' | sed 's/Bash/Perl/'
Izlaz:
Riječ 'Bash' postoji u tekstu. Dakle, izlaz je 'Perl Scripting Language'.
Naredba `sed` može se koristiti i za zamjenu bilo kojeg dijela sadržaja datoteke. Napravite tekstualnu datoteku pod nazivom weekday.txt sa sljedećim sadržajem.
weekday.txt
ponedjeljakutorak
srijeda
četvrtak
petak
subota
nedjelja
Sljedeća naredba pretražit će i zamijeniti tekst 'Nedjelja', tekstom 'Nedjelja je praznik'.
$mačkaweekday.txt$sed 's/nedjelja/nedjelja je praznik/'weekday.txt
Izlaz:
'Nedjelja' postoji u datoteci weekday.txt i ova se riječ zamjenjuje tekstom 'Nedjelja je praznik' nakon izvršavanja gornje naredbe `sed`.
2. Zamijenite sve instance teksta u određenom retku datoteke pomoću opcije 'g'
Opcija 'g' koristi se u naredbi `sed` za zamjenu svih pojavljivanja odgovarajućeg uzorka. Napravite tekstualnu datoteku pod nazivom python.txt sa sljedećim sadržajem da biste znali korištenje opcije 'g'. Ova datoteka sadrži riječ. 'Piton' više puta.
python.txt
Python je vrlo popularan jezik.
Python je jednostavan za korištenje. Python je lako naučiti.
Python je jezik za više platformi
Sljedeća naredba zamijenit će sve pojave riječi ' Piton ’U drugom retku datoteke, python.txt . Ovdje, 'Piton' javlja se dva puta u drugom retku.
$ mačji piton.txt$ sed'2 s / Python / perl / g'piton.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja skripte. Ovdje se sva pojava 'Pythona' u drugom retku zamjenjuje s 'Perl'.
3. Zamijenite drugu pojavu samo podudaranja u svakom retku
Ako se bilo koja riječ pojavi više puta u datoteci, tada se određena pojava riječi u svakom retku može zamijeniti pomoću naredbe `sed` s brojem pojavljivanja. Sljedeća naredba `sed` zamijenit će drugu pojavu uzorka pretraživanja u svakom retku datoteke, python.txt .
$ sed's/Python/perl/g2'piton.txtIzlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ovdje je tekst za pretraživanje, ‘ Piton' pojavljuje se dva puta samo u drugom retku i zamjenjuje se tekstom: Perl '.
4. Zamijenite posljednju pojavu samo podudaranja u svakom retku
Napravite tekstualnu datoteku pod nazivom lang.txt sa sljedećim sadržajem.
lang.txt
Bash programski jezik. Programski jezik Python. Programski jezik Perl.
Jezik označavanja hiperteksta.
Proširivi jezik označavanja.
5. Zamijenite prvo podudaranje u datoteci novim tekstom
Sljedeća naredba zamijenit će samo prvo podudaranje uzorka pretraživanja, ' Piton ‘Po tekstu, ‘Perl ‘. Ovdje, '1' koristi se za podudaranje s prvim pojavljivanjem uzorka.
$ mačji piton.txt$ sed'1 s / Python / perl /'piton.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Ovdje. prva pojava 'Python' u prvom retku zamjenjuje se s 'perl'.
6. Zamijenite posljednje podudaranje u datoteci novim tekstom
Sljedeća naredba zamijenit će posljednju pojavu uzorka pretraživanja, 'Piton ‘Po tekstu, ‘Bash’. Ovdje, '$' simbol se koristi za podudaranje s posljednjim pojavljivanjem uzorka.
$ mačji piton.txt$ sed -e'$ s / Python / Bash /'piton.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
7. Izbjegavanje obrnute kose crte u naredbama replace za upravljanje pretraživanjem i zamjenom putanja datoteka
Za traženje i zamjenu potrebno je izbjeći obrnutu kosu crtu u putanji datoteke. Sljedeća naredba `sed` dodat će obrnutu kosu crtu () u putanju datoteke.
$izbaciti /Dom/ubuntu/kodirati/perl/add.pl| sed 's; /; \ /; g'Izlaz:
Put do datoteke, ‘/Home/ubuntu/code/perl/add.pl’ je naveden kao ulaz u naredbi `sed`, a sljedeći izlaz će se pojaviti nakon pokretanja gornje naredbe.
8. Zamijenite sve datoteke punom putom samo s nazivom datoteke bez imenika
Naziv datoteke može se vrlo lako dohvatiti s putanje datoteke pomoću ` basename` naredba. Naredba `sed` može se koristiti i za dohvaćanje naziva datoteke s putanje datoteke. Sljedeća naredba dohvatit će naziv datoteke samo iz putanje datoteke koju daje naredba `echo`.
$izbaciti '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ovdje je naziv datoteke ' myfile.txt ' ispisuje se kao izlaz.
9. Zamijenite tekst, ali samo ako se u nizu nađe neki drugi tekst
Napravite datoteku pod nazivom ' dept.txt ' sa sljedećim sadržajem zamijeniti bilo koji tekst na temelju drugog teksta.
dept.txt
Popis ukupnih učenika:
CSE - BrojEEE - Broj
Građanski - Grof
Dvije naredbe za zamjenu koriste se u sljedećoj naredbi `sed`. Evo teksta, ‘ Računati ‘Bit će zamijenjeno sa 100 u retku koji sadrži tekst, ‘CSE 'I tekst,' Računati' bit će zamijenjen sa 70 u retku koji sadrži uzorak pretraživanja, ' EEE ' .
$mačkadept.txt$sed -I '/CSE/s/Count/100/; /EEE/s/Broj/70/; 'dept.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
10. Zamijenite tekst, ali samo ako neki drugi tekst nije pronađen u nizu
Sljedeća naredba `sed` zamijenit će vrijednost 'Brojanje' u retku koji ne sadrži tekst, 'CSE'. dept.txt datoteka sadrži dva retka koja ne sadrže tekst, 'CSE'. Dakle, ‘ Računati 'Tekst će biti zamijenjen s 80 u dva retka.
$mačkadept.txt$sed -i -I '/CSE/! s/Broj/80/; 'dept.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
11. Dodajte niz prije i poslije odgovarajućeg uzorka pomoću ' 1'
Slijed podudarnih uzoraka naredbe `sed` označen je s ' 1', ' 2' itd. Sljedeća naredba `sed` pretraživat će uzorak, 'Bas', a ako se uzorak podudara, tada će mu se pristupiti putem ' 1' u dijelu zamjene teksta. Ovdje se u ulaznom tekstu traži tekst 'Bas', a jedan se tekst dodaje prije, a drugi nakon ' 1'.
$izbaciti 'Basovski jezik' | sed 's/ (Bash )/Naučite 1 programiranje/'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Evo, ‘ Naučiti' tekst se dodaje prije 'Bash' i ' programiranje 'Tekst se dodaje iza' Bash ’.
12. Obrišite podudarne retke
'D' opcija se koristi u naredbi `sed` za brisanje bilo kojeg retka iz datoteke. Napravite datoteku pod nazivom os.txt i dodajte sljedeći sadržaj za provjeru funkcije 'D' opcija.
mačka os.txt
WindowsLinux
Android
VAS
Sljedeća naredba `sed` izbrisat će te retke iz os.txt datoteka koja sadrži tekst, 'OS'.
$mačkaos.txt$sed '/D'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
13. Izbrišite odgovarajući redak i 2 retka nakon podudarnog retka
Sljedeća naredba će izbrisati tri retka iz datoteke os.txt ako uzorak, ' Linux ' pronađeno je. os.txt sadrži tekst, ‘Linux ‘U drugom retku. Dakle, ovaj redak i sljedeća dva retka bit će izbrisani.
$sed ' / Linux /, + 2d'os.txtIzlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
14. Izbrišite sve razmake na kraju reda teksta
Korištenje [:prazan:] class može se koristiti za uklanjanje razmaka i kartica iz teksta ili sadržaja bilo koje datoteke. Sljedeća naredba uklonit će razmake na kraju svakog retka datoteke, os.txt.
$mačkaos.txt$sed 's/[[: prazno:]]*$ //'os.txt
Izlaz:
os.txt sadrži prazne retke nakon svakog retka koji se brišu gornjom naredbom `sed`.
15. Izbrišite sve retke koji se podudaraju dva puta na liniji
Izradite tekstualnu datoteku s imenom, input.txt sa sljedećim sadržajem i dva puta izbrisati one retke datoteke koji sadrže uzorak pretraživanja.
input.txt
PHP je skriptni jezik na strani poslužitelja.
PHP je jezik otvorenog koda i PHP razlikuje velika i mala slova.
PHP je neovisan o platformi.
'PHP' tekst sadrži dva puta u drugom retku datoteke, input.txt . Dvije naredbe `sed` koriste se u ovom primjeru za uklanjanje onih linija koje sadrže uzorak ' php ' Dva puta. Prva naredba `sed` zamijenit će drugu pojavu 'php' u svakom retku sa ' dl 'I poslati izlaz u drugu naredbu `sed` kao ulaz. Druga naredba `sed` izbrisat će one retke koji sadrže tekst, ' dl '.
$mačkainput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Izlaz:
input.txt datoteka ima dva retka koji sadrže uzorak, 'Php' Dva puta. Dakle, sljedeći izlaz će se pojaviti nakon pokretanja gornjih naredbi.
16. Izbrišite sve retke koji imaju samo razmake
Odaberite bilo koju datoteku koja sadrži prazne retke u sadržaju da biste testirali ovaj primjer. input.txt datoteka stvorena u prethodnom primjeru sadrži dva prazna retka koja se mogu izbrisati pomoću sljedeće naredbe `sed`. Ovdje se ‘^$’ koristi za otkrivanje praznih redaka u datoteci, input.txt.
$mačkainput.txt$sed '/^$/d'input.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
17. Izbrišite sve znakove koji se ne mogu ispisati
Znakovi koji se ne mogu ispisati mogu se izbrisati iz bilo kojeg teksta zamjenom znakova koji se ne mogu ispisati. Klasa [: print:] koristi se u ovom primjeru za pronalaženje znakova koji se ne mogu ispisati. ' T' je znak za ispis koji se ne može izravno raščlaniti naredbom `echo`. Za to je u varijabli $ tab dodijeljen znak ' t' koji se koristi u naredbi `echo`. Izlaz naredbe `echo` šalje se u naredbi` sed` koja će ukloniti znak ' t' iz izlaza.
$tab= $' t'$izbaciti 'Zdravo$ tabWorld'
$izbaciti 'Zdravo$ tabWorld' | sed 's/[^[: print:]] // g'
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Prva naredba `echo ispisat će izlaz s razmakom kartica, a naredba` sed` ispisat će izlaz nakon uklanjanja prostora na kartici.
18. Ako postoji podudaranje u redu, dodajte nešto na kraj retka
Sljedeća će naredba dodati '10' na kraj retka koji sadrži tekst, 'Windows' u os.txt datoteka.
$mačkaos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Izlaz:
Nakon izvođenja naredbe pojavit će se sljedeći izlaz.
19. Ako postoji podudaranje u retku, umetnite redak prije teksta
Sljedeća naredba `sed` pretraživat će tekst, ' PHP je neovisan o platformi ' u input.txt datoteka koja je prije stvorena. Ako datoteka sadrži ovaj tekst u bilo kojem retku, ' PHP je tumačeni jezik ' bit će umetnuta prije tog retka.
$mačkainput.txt$sed '/PHP neovisan o platformi/s/^/PHP je interpretirani jezik. N/'input.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
20. Ako postoji podudaranje u retku, umetnite redak iza tog retka
Sljedeća naredba `sed` pretraživat će tekst, ' Linux ' u datoteci os.txt a ako tekst postoji u bilo kojem retku, tada novi tekst, ' Ubuntu 'Bit će umetnut iza tog retka.
$mačkaos.txt$sed 's/Linux/& nUbuntu/'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
21. Ako nema podudaranja, dodajte nešto na kraj retka
Sljedeća naredba `sed` pretraživat će te retke u os.txt koji ne sadrži tekst, 'Linux' i dodati tekst: ' Operacijski sustav ‘Na kraju svakog retka. Evo, ‘ $ 'Simbol se koristi za identifikaciju retka u koji će se dodati novi tekst.
$mačkaos.txt$sed '/Linux/! S/$/Operacijski sustav/'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. U datoteci os.txt postoje tri retka koji ne sadrže tekst, 'Linux' i novi tekst s dodan na kraju ovih redaka.
22. Ako nema podudaranja, izbrišite redak
Napravite datoteku pod nazivom web.txt te dodati sljedeći sadržaj i izbrisati retke koji ne sadrže odgovarajući uzorak. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Sljedeća naredba `sed` pretražit će i izbrisati one retke koji ne sadrže tekst, 'CSS'. $ cat web.txt $ sed '/CSS/! d' web.txt Izlaz: Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. U datoteci postoji jedan redak koji sadrži tekst, 'CSE'. Dakle, izlaz sadrži samo jedan redak.
23. Dupliciraj podudarni tekst nakon dodavanja razmaka iza teksta
Sljedeća naredba `sed` pretraživat će riječ, 'do' u datoteci, python.txt a ako riječ postoji tada će se ista riječ umetnuti nakon riječi za pretraživanje dodavanjem razmaka. Ovdje, '&' simbol koristi se za dodavanje dupliciranog teksta.
$mačkapython.txt$sed -I 's / to / & to / g'python.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja naredbi. Ovdje se u datoteci traži riječ 'do', python.txt i ova riječ postoji u drugom retku ove datoteke. Tako, 'do ’S razmakom dodaje se nakon odgovarajućeg teksta.
24. Zamijenite jedan popis nizova novim nizom
Morate stvoriti dvije datoteke s popisom za testiranje ovog primjera. Napravite tekstualnu datoteku pod nazivom list1.txt i dodati sljedeći sadržaj.
popis mačaka1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Napravite tekstualnu datoteku pod nazivom list2.txt i dodati sljedeći sadržaj.
$ cat list2.txt
1001CSE GPA3.631002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3,84
Sljedeća naredba `sed` podudarat će se s prvim stupcem dviju tekstualnih datoteka prikazanih gore i zamijenit će odgovarajući tekst vrijednošću trećeg stupca datoteke list1.txt.
$mačkalist1.txt$mačkalist2.txt
$sed ``mačkalist1.txt| awk '{print' -e s / '$ 1' / '$ 3' / '}'``<<<'`popis mačaka2.txt`'
Izlaz:
1001, 1023 i 1067 od list1.txt datoteka se podudara s tri podatka list2.txt datoteku i te se vrijednosti zamjenjuju odgovarajućim nazivima trećeg stupca datoteke list1.txt .
25. Zamijenite usklađeni niz nizom koji sadrži nove retke
Sljedeća naredba će uzeti unos iz naredbe `echo` i pretraživati riječ, 'Piton' u tekstu. Ako riječ postoji u tekstu, onda novi tekst, 'Dodani tekst' bit će umetnut s novim retkom. $ echo Bash Perl Python Java PHP ASP | sed ‘s/Python/Dodani tekst n/’ Izlaz: Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
26. Uklonite nove retke iz datoteke i umetnite zarez na kraju svakog retka
Sljedeća naredba `sed` zamijenit će svaki novi redak zarezom u datoteci os.txt . Ovdje, -S opcija se koristi za odvajanje retka NULL znakom.
$sed -S 's/ n/,/g'os.txtIzlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
27. Uklonite zareze i dodajte novi redak da biste podijelili tekst u više redaka
Sljedeća naredba `sed` primit će redak odvojen zarezima od naredbe` echo` kao ulaz i zamijeniti zarez novim retkom.
$izbaciti 'Kaniz Fatema, 30., serija' | sed 's/,/ n/g 'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ulazni tekst sadrži tri podatka odvojena zarezima koji su zamijenjeni novim retkom i ispisani u tri retka.
28. Pronađite podudaranje koje ne razlikuje velika i mala slova i izbrišite redak
'I' se koristi u naredbi `sed` za podudaranje koje ne razlikuje velika i mala slova koje označava zanemarivanje velikih i malih slova. Sljedeća naredba `sed` pretraživat će redak koji sadrži riječ, ‘Linux ‘I izbrisati redak iz os.txt datoteka.
$mačkaos.txt$sed '/linux/Id'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. os.txt sadrži riječ 'Linux' koja se podudara s uzorkom, 'linux' za pretraživanje bez razlikovanja velikih i malih slova i izbrisana.
29. Pronađite podudaranje koje ne razlikuje velika i mala slova i zamijenite ga novim tekstom
Sljedeća naredba `sed` uzeti će unos iz naredbe` echo` i zamijeniti riječ 'bash' riječju 'PHP'.
$izbaciti 'Volim bash programiranje' | sed 's/Bash/PHP/i'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ovdje se riječ 'Bash' podudara s riječju 'bash' za pretraživanje bez razlikovanja velikih i malih slova i zamijenjena je riječju 'PHP'.
30. Pronađi podudaranje koje ne razlikuje velika i mala slova i zamijeni ih velikim slovima istog teksta
' U' koristi se u `sed` za pretvaranje bilo kojeg teksta u velika slova. Sljedeća naredba `sed` tražit će riječ, ‘Linux ‘U os.txt datoteku i ako riječ postoji tada će je zamijeniti svim velikim slovima.
$mačkaos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Riječ 'Linux' datoteke os.txt zamijenjena je riječju 'LINUX'.
31. Pronađi podudarnost koja ne razlikuje velika i mala slova i zamijeni je malim slovima istog teksta
' THE' koristi se u `sed` za pretvaranje bilo kojeg teksta u sva mala slova. Sljedeća naredba `sed` tražit će riječ, 'Linux' u os.txt datoteku i zamijenite riječ svim malim slovima.
$mačkaos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Riječ 'Linux' ovdje se zamjenjuje riječju 'linux'.
32. Zamijenite sva velika slova u tekstu malim slovima
Sljedeća naredba `sed` pretraživat će sve velike znakove u os.txt datoteku i zamijenite znakove malim slovima pomoću ' L'.
$mačkaos.txt$sed 's/ (.*)/ L 1/'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
33. Potražite broj u retku i dodajte bilo koji simbol valute prije broj
Napravite datoteku pod nazivom items.txt sa sljedećim sadržajem.
items.txt
HDD 100Monitor 80
Miš 10
Sljedeća naredba `sed` pretraživat će broj u svakom retku items.txt datoteku i dodajte simbol valute, '$' prije svakog broja.
$mačkaitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Ovdje se ispred broja svakog retka dodaje simbol ‘$’.
34. Brojevima koji imaju više od 3 znamenke dodajte zareze
Sljedeća naredba `sed` uzeti će broj kao ulaz iz naredbe` echo` i dodati zarez nakon svake grupe od tri znamenke koja broji s desne strane. Ovdje ': a' označava oznaku, a 'ta' se koristi za ponavljanje procesa grupiranja.
$izbaciti '5098673' | sed -I:do-I 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Izlaz:
Broj 5098673 dan je u naredbi `echo`, a naredba` sed` generirala je broj 5,098,673 dodavanjem zareza nakon svake grupe od tri znamenke.
35. Zamjenjuje znak kartice s 4 razmaka
Sljedeća naredba `sed` zamijenit će svaki znak kartice ( t) s četiri razmaka. Simbol '$' koristi se u naredbi `sed` kako bi odgovarao znaku kartice, a 'g' se koristi za zamjenu svih znakova kartice.
$izbaciti -I '1 t2 t3 ' | sed$'s/ t//g'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
36. Zamjenjuje 4 uzastopna razmaka znakom kartice
Sljedeća naredba zamijenit će 4 uzastopna znaka znakom tab ( t).
$izbaciti -I '1 2' | sed$'s// t/g'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
37. Skraći sve retke na prvih 80 znakova
Napravite tekstualnu datoteku pod nazivom in.txt koji sadrži retke više od 80 znakova za testiranje ovog primjera.
in.txt
PHP je skriptni jezik na strani poslužitelja.
PHP je jezik otvorenog koda i PHP razlikuje velika i mala slova. PHP je neovisan o platformi.
Sljedeća naredba `sed` skratit će svaki redak in.txt datoteku u 80 znakova.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Drugi redak datoteke in.txt sadrži više od 80 znakova i ovaj je redak skraćen u ispisu.
38. Potražite regex niza i dodajte neki standardni tekst nakon njega
Sljedeća naredba `sed` pretraživat će tekst, ' zdravo 'U ulaznom tekstu i dodajte tekst,' Ivan ‘Nakon tog teksta.
$izbaciti 'bok, kako si?' | sed 's/ (pozdrav )/ 1 Ivan/'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
39. Potražite regex niza i dodajte drugi tekst nakon drugog podudaranja u svaki redak
Sljedeća naredba `sed` pretraživat će tekst, ' PHP 'U svakom retku input.txt i zamijenite drugo podudaranje u svakom retku tekstom, 'Novi tekst dodan' .
$mačkainput.txt$sed 's/ (PHP )/ 1 (dodan je novi tekst)/2'input.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Tekst za pretraživanje, ' PHP ’Pojavljuje se dva puta u drugom i trećem retku input.txt datoteka. Dakle, tekst, ‘ Dodan je novi tekst ’Umetnuta je u drugi i treći redak.
40. Pokretanje više redaka `sed` skripti iz datoteke
Više `sed` skripti može se pohraniti u datoteku i sve se skripte mogu izvesti zajedno pokretanjem naredbe` sed`. Napravite datoteku pod nazivom ‘Sedcmd 'I dodati sljedeći sadržaj. Ovdje se u datoteku dodaju dvije `sed` skripte. Jedna skripta zamijenit će tekst, ' PHP ‘Od ‘ASP 'Druga skripta zamijenit će tekst,' neovisna 'Po tekstu,' ovisna '.
sedcmd
s/PHP/ASP/s/neovisna/ovisna/
Sljedeća naredba `sed` zamijenit će sav 'PHP' i 'neovisni' tekst sa 'ASP' i 'ovisan'. Ovdje se opcija '-f' koristi u naredbi `sed` za izvršavanje` sed` skripte iz datoteke.
$mačkasedcmd$sed -fsedcmd input.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon izvođenja naredbi.
41. Uskladite višeredni uzorak i zamijenite ga novim višredinskim tekstom
Sljedeća naredba `sed` pretraživat će tekst u više redaka, 'Linux nAndroid' a ako se uzorak podudara, odgovarajuće linije bit će zamijenjene višredinskim tekstom, ‘Ubuntu nAndroid Lollipop ‘. Ovdje se P i D koriste za višerednu obradu.
$mačkaos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoidni lizalica/; P; D'os.txt
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
42. Zamijenite redoslijed dviju riječi u tekstu koje odgovaraju uzorku
Sljedeća naredba `sed` uzet će dvije riječi iz naredbe` echo` i zamijeniti redoslijed ovih riječi.
$izbaciti 'perl python' | sed -I 's/ ([^]*)* ([^]*)/ 2 1/'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
43. Izvršite više naredbi `sed` iz naredbenog retka
Opcija '-e' koristi se u naredbi `sed` za pokretanje više` sed` skripti iz naredbenog retka. Sljedeća naredba `sed` uzet će tekst kao unos iz naredbe` echo` i zamijeniti ' Ubuntu 'Od' Kubuntu 'I' stotine 'Od' Fedora '.
$izbaciti 'Ubuntu Centos Debian' | sed -I 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ovdje su 'Ubuntu' i 'Centos' zamijenjeni s 'Kubuntu' i 'Fedora'.
44. Kombinirajte `sed` s drugim naredbama
Sljedeća naredba kombinirat će naredbu `sed` s naredbom` cat`. Prva naredba `sed` preuzimat će ulaz iz os.txt datoteku i pošaljite izlaz naredbe drugoj naredbi `sed` nakon zamjene teksta '' Linux '' s 'Fedora'. Druga naredba `sed` zamijenit će tekst,' Windows 'sa' Windows 10 '.
$mačkaos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
45. Umetnite prazan redak u datoteku
Napravite datoteku pod nazivom stdlist sa sljedećim sadržajem.
stdlist
#ID #Ime[101] -Ali
[102] -Neha
Opcija 'G' koristi se za umetanje praznog retka u datoteku. Sljedeća naredba `sed` umetnut će prazne retke nakon svakog retka stdlist datoteka.
$mačkastdlist$sedG stdlist
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi. Nakon svakog retka datoteke umetnut je prazan redak.
46. Zamijenite sve alfanumeričke znakove razmakom u svakom retku datoteke.
Sljedeća naredba zamijenit će sve alfanumeričke znakove razmakom u stdlist datoteka.
$mačkastdlist$ ali 's / [A-Za-z0-9] // g'stdlist
Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornjih naredbi.
47. Koristite '&' za ispis podudarnog niza
Sljedeća naredba pretražit će riječ koja počinje s 'L' i zamijeniti tekst dodavanjem 'Podudarni niz je - 'S podudarnom riječju pomoću simbola' & '. Ovdje se 'p' koristi za ispis izmijenjenog teksta.
$sed -n 's/^L/Podudarni niz je - &/p'os.txtIzlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe.
48. Promijenite par riječi u datoteci
Napravite tekstualnu datoteku pod nazivom course.txt sa sljedećim sadržajem koji sadrži par riječi u svakom retku.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Sljedeća naredba mijenja par riječi u svakom retku datoteke, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtIzlaz:
Sljedeći izlaz pojavit će se nakon zamjene para riječi u svakom retku.
49. Prvo slovo svake riječi piši velikim slovima
Sljedeća naredba `sed` uzet će ulazni tekst iz naredbe` echo` i pretvoriti prvi znak svake riječi u veliko slovo.
$izbaciti 'Volim bash programiranje' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Izlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Ulazni tekst, volim bash programiranje, ispisuje se kao i volim bash programiranje nakon velikih slova prve riječi.
50. Ispišite brojeve redaka datoteke
'=' Simbol koristi se naredbom `sed` za ispis broja retka prije svakog retka datoteke. Sljedeća naredba ispisat će sadržaj os.txt datoteka s brojem retka.
$sed '='os.txtIzlaz:
Sljedeći izlaz pojavit će se nakon pokretanja gornje naredbe. Postoje četiri linije os.txt datoteka. Dakle, broj retka ispisuje se prije svakog retka datoteke.
Zaključak:
Različite uporabe naredbe `sed` objašnjene su u ovom vodiču pomoću vrlo jednostavnih primjera. Izlaz svih ovdje navedenih skripti `sed` generiran je privremeno, a sadržaj izvorne datoteke ostao je nepromijenjen. No, ako želite, možete izmijeniti izvornu datoteku pomoću opcije -i ili -in-place naredbe `sed. Ako ste novi korisnik Linuxa i želite naučiti osnovne upotrebe naredbe `sed` za izvršavanje različitih vrsta zadataka manipulacije nizovima, ovaj će vam vodič pomoći. Nadam se da će nakon čitanja ovog vodiča svaki korisnik dobiti jasan koncept o funkcijama naredbe `sed`.
Često postavljana pitanja
Za što se koristi naredba sed?
Naredba sed ima više različitih namjena. S tim u vezi, glavna upotreba je zamjena riječi u datoteci ili pronalaženje i zamjena.
Sjajna stvar u vezi s sedom je što možete tražiti riječ u datoteci i zamijeniti je, ali nikada ne morate čak ni otvoriti datoteku - sed to radi samo za vas!
Osim toga, može se koristiti i za brisanje. Sve što trebate učiniti je upisati riječ koju želite pronaći, zamijeniti ili izbrisati u sed, i ona će je prikazati umjesto vas - tada možete odabrati zamijeniti tu riječ ili izbrisati sve tragove riječi iz datoteke.
sed je fantastičan alat za zamjenu stvari poput IP adresa i svega što je vrlo osjetljivo što inače ne biste htjeli staviti u datoteku. sed je potrebno znati za svakog softverskog inženjera!
Što su S i G u sed naredbi?
Najjednostavnije rečeno, funkcija S koja se može koristiti u sed jednostavno znači 'zamjena'. Nakon što upišete S, možete zamijeniti ili zamijeniti sve što želite - samo upisivanje S zamijenit će samo prvu pojavu riječi u retku.
Stoga, ako imate rečenicu ili redak koji ih spominje više puta, funkcija S nije idealna jer će zamijeniti samo prvu pojavu. Možete navesti uzorak kako bi S zamijenio riječi svaka dva pojavljivanja.
Navođenje G na kraju naredbe sed učinit će globalnu zamjenu (to je ono što G znači). Imajući to na umu, ako navedete G, zamijenit će svaku pojavu riječi koju ste odabrali, a ne samo prvu pojavu koju čini S.
Kako mogu pokrenuti sed skriptu?
Sed skriptu možete pokrenuti na nekoliko načina, ali najčešći je u naredbenom retku. Ovdje možete samo odrediti sed i datoteku na kojoj želite koristiti naredbu.
To vam omogućuje korištenje sed na toj datoteci, što vam omogućuje da pronađete, izbrišete i zamijenite prema potrebi.
Također ga možete koristiti u ljuskoj skripti i na ovaj način možete proslijediti skripti sve što želite, a ona će za vas pokrenuti naredbu za pronalaženje i zamjenu. Ovo je korisno ako ne želite navesti visoko osjetljive podatke unutar skripte, pa ih umjesto toga možete proslijediti kao varijablu
Imajte na umu da je to, naravno, dostupno samo na Linuxu, pa ćete se morati pobrinuti da imate Linux naredbenu liniju kako biste pokrenuli sed skriptu.