Naslednji izhod prikazuje, da je v sistem nameščen GNU Sed različice 4.4.
Sintaksa:
sed [opcije]...[skript] [mapa]
Če z ukazom `sed` ni nobenega imena datoteke, bo skript deloval na standardnih vhodnih podatkih. Skript `sed` je mogoče izvesti brez možnosti.
Vsebina :
- Osnovna zamenjava besedila z uporabo 'sed'
- Vse primere besedila v določeni vrstici datoteke zamenjajte z možnostjo 'g'
- Zamenjajte drugi pojav le ujemanja v vsaki vrstici
- V vsaki vrstici zamenjajte samo zadnji pojav ujemanja
- Prvo ujemanje v datoteki zamenjajte z novim besedilom
- Zadnje ujemanje v datoteki zamenjajte z novim besedilom
- Izogibanje poševnice pri ukazih replace za upravljanje iskanja in zamenjave poti datotek
- Polno pot vseh datotek zamenjajte samo z imenom datoteke brez imenika
- Zamenjajte besedilo, vendar le, če je v nizu kakšno drugo besedilo
- Nadomestno besedilo, vendar le, če v nizu ni drugega besedila
- Dodajte niz pred ujemajočim se vzorcem z uporabo ' 1 '
- Izbrišite ujemajoče se vrstice
- Izbrišite ujemajočo se vrstico in 2 vrstici po ujemajoči se vrstici
- Izbrišite vse presledke na koncu vrstice besedila
- Izbrišite vse vrstice, ki se na vrstici dvakrat ujemajo
- Izbrišite vse vrstice z edinim presledkom
- Izbrišite vse znake, ki jih ni mogoče natisniti
- Če je ujemanje v vrsti, dodajte nekaj na konec vrstice
- Če je v vrstici v vrstici pred ujemanjem ujemanje
- Če je po vrstnem redu v vrstici za vstavljanje vrstice ujemanje
- Če ni ujemanja, dodajte nekaj na konec vrstice
- Če ni ujemanja, izbrišite vrstico
- Podvojeno ujemajoče se besedilo po dodajanju presledka za besedilom
- Zamenjajte enega od seznamov nizov z novim nizom
- Ustrezni niz zamenjajte z nizom, ki vsebuje nove vrstice
- Odstranite nove vrstice iz datoteke in na konec vsake vrstice vstavite vejico
- Odstranite vejice in dodajte nove vrstice, da razdelite besedilo na več vrstic
- Poiščite ujemanje, ki ne razlikuje med velikimi in malimi črkami, in izbrišite vrstico
- Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami, in ga zamenjaj z novim
- Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami istega besedila
- Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami istega besedila
- Vse velike črke v besedilu zamenjajte z malimi
- Poiščite številko v vrstici in za številko dodajte simbol valute
- Številkam, ki imajo več kot 3 števke, dodajte vejice
- Zamenjajte znake zavihkov s 4 presledki
- 4 zaporedne presledke zamenjajte z zavihkom
- Vse vrstice okrnite na prvih 80 znakov
- Poiščite regex niza in po njem dodajte standardno besedilo
- Poiščite regex niza in drugo kopijo najdenega niza za njim
- Izvajanje večvrstičnih skriptov `sed` iz datoteke
- Ujemajte večvrstični vzorec in ga zamenjajte z novim večvrstičnim besedilom
- Zamenjaj vrstni red dveh besed, ki se ujemata z vzorcem
- Uporabite več ukazov sed iz ukazne vrstice
- Združite sed z drugimi ukazi
- V datoteko vstavite prazno vrstico
- Iz vsake vrstice datoteke izbrišite vse alfanumerične znake.
- Uporabite '&' za ujemanje niza
- Zamenjaj par besed
- Z veliko začetnico vsake besede
- Natisnite številke vrstic datoteke
1. Osnovna zamenjava besedila z uporabo 'sed'
Po katerem koli posebnem delu besedila lahko iščete in zamenjate z iskanjem in zamenjavo vzorca z ukazom `sed`. V naslednjem primeru 's' označuje nalogo iskanja in zamenjave. Beseda 'Bash' bo iskana v besedilu, Bash Scripting Language in če beseda obstaja v besedilu, bo nadomeščena z besedo 'Perl'.
$vrgel ven 'Bash skriptni jezik' | sed 's/Bash/Perl/'
Izhod:
Beseda 'Bash' obstaja v besedilu. Tako je izhod 'Skriptni jezik Perl'.
Ukaz `sed` lahko uporabite tudi za zamenjavo katerega koli dela vsebine datoteke. Ustvarite besedilno datoteko z imenom weekday.txt z naslednjo vsebino.
weekday.txt
PonedeljekTorek
Sreda
Četrtek
Petek
Sobota
Nedelja
Naslednji ukaz bo iskal in nadomestil besedilo 'nedelja' z besedilom 'nedelja je praznik'.
$mačkaweekday.txt$sed 's/nedelja/nedelja je praznik/'weekday.txt
Izhod:
'Nedelja' obstaja v datoteki weekday.txt in ta beseda se po izvedbi zgornjega ukaza 'sed' nadomesti z besedilom 'Nedelja je praznik'.
2. Zamenjajte vse primerke besedila v določeni vrstici datoteke z možnostjo 'g'
Možnost 'g' se uporablja v ukazu `sed` za nadomestitev vseh pojavitev ujemajočega se vzorca. Ustvarite besedilno datoteko z imenom python.txt z naslednjo vsebino, da poznate uporabo možnosti 'g'. Ta datoteka vsebuje besedo. 'Python' večkrat.
python.txt
Python je zelo priljubljen jezik.
Python je enostaven za uporabo. Python se je enostavno naučiti.
Python je jezik za več platform
Naslednji ukaz bo nadomestil vse pojavitve ' Python «V drugi vrstici datoteke, python.txt . Tukaj, 'Python' se v drugi vrstici pojavi dvakrat.
$ mačji piton.txt$ sed'2 s / Python / perl / g'python.txt
Izhod:
Po zagonu skripta se prikaže naslednji izhod. Tu se ves pojav 'Python' v drugi vrstici nadomesti z 'Perl'.
3. Zamenjajte drugi pojav le ujemanja v vsaki vrstici
Če se katera koli beseda večkrat pojavi v datoteki, lahko poseben pojav besede v vsaki vrstici nadomestite z ukazom `sed` s številko pojavljanja. Naslednji ukaz `sed` bo nadomestil drugi pojav iskalnega vzorca v vsaki vrstici datoteke, python.txt .
$ sed's/Python/perl/g2'python.txtIzhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Tukaj iskalno besedilo, ' Python ' se dvakrat pojavi samo v drugi vrstici in jo nadomesti besedilo: Perl '.
4. V vsaki vrstici zamenjajte samo zadnji pojav ujemanja
Ustvarite besedilno datoteko z imenom lang.txt z naslednjo vsebino.
lang.txt
Bash programski jezik. Programski jezik Python. Programski jezik Perl.
Jezik označevanja hiperteksta.
Razširljiv označevalni jezik.
5. Prvo ujemanje v datoteki zamenjajte z novim besedilom
Naslednji ukaz bo nadomestil samo prvo ujemanje iskalnega vzorca, ' Python 'Po besedilu, 'Perl ‘. Tukaj, '1' se uporablja za ujemanje prvega pojavljanja vzorca.
$ mačji piton.txt$ sed'1 s / Python / perl /'python.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Tukaj. prvi pojav 'Python' v prvi vrstici se nadomesti z 'perl'.
6. Zadnje ujemanje v datoteki zamenjajte z novim besedilom
Naslednji ukaz bo nadomestil zadnji pojav iskalnega vzorca, 'Python 'Po besedilu, 'Bash'. Tukaj, '$' simbol se uporablja za ujemanje zadnjega pojavljanja vzorca.
$ mačji piton.txt$ sed -e'$ s / Python / Bash /'python.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
7. Izogibanje poševnice pri ukazih replace za upravljanje iskanja in zamenjave poti datotek
Za iskanje in zamenjavo je treba umakniti poševnico v poti datoteke. Naslednji ukaz `sed` bo v pot do datoteke dodal poševnico ().
$vrgel ven /doma/ubuntu/Koda/perl/add.pl| sed 's; /; \ /; g'Izhod:
Pot do datoteke, ‘/Home/ubuntu/code/perl/add.pl’ je na voljo kot vhod v ukazu `sed` in naslednji izhod bo prikazan po zagonu zgornjega ukaza.
8. Zamenjajte celotno pot vseh datotek samo z imenom datoteke brez imenika
Ime datoteke je mogoče zelo enostavno pridobiti s poti datoteke z ` basename ` ukaz. Ukaz `sed` lahko uporabite tudi za pridobivanje imena datoteke s poti do datoteke. Naslednji ukaz bo pridobil ime datoteke samo iz poti do datoteke, ki jo poda ukaz `echo`.
$vrgel ven '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Tukaj je ime datoteke ' myfile.txt ' je natisnjen kot izhod.
9. Zamenjajte besedilo, vendar le, če je v nizu kakšno drugo besedilo
Ustvarite datoteko z imenom ' dept.txt ' z naslednjo vsebino za zamenjavo katerega koli besedila na podlagi drugega besedila.
dept.txt
Seznam vseh študentov:
CSE - štetjeEEE - štetje
Civil - Grof
V naslednjem ukazu `sed` se uporabljata dva ukaza za zamenjavo. Tukaj je besedilo ' Preštej 'Bo nadomeščen z 100 v vrstici, ki vsebuje besedilo, „CSE 'In besedilo,' Šteti ' bo nadomeščen z 70 v vrstici, ki vsebuje vzorec iskanja, ' EEE ' .
$mačkadept.txt$sed -In '/CSE/s/Count/100/; /EEE/s/Štetje/70/; 'dept.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
10. Zamenjajte besedilo, vendar le, če v nizu ni drugega besedila
Naslednji ukaz `sed` bo nadomestil vrednost 'Count' v vrstici, ki ne vsebuje besedila, 'CSE'. dept.txt datoteka vsebuje dve vrstici, ki ne vsebujeta besedila, 'CSE'. Torej ' Preštej 'Besedilo bo v dveh vrsticah nadomeščeno z 80.
$mačkadept.txt$sed -jaz -In '/CSE/! s/Count/80/; 'dept.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
11. Dodajte niz pred in po ujemajočem se vzorcu z uporabo ' 1'
Zaporedje ujemajočih se vzorcev ukaza `sed` je označeno z ' 1', ' 2' itd. Naslednji ukaz `sed` bo poiskal vzorec 'Bash' in če se vzorec ujema, bo do njega dostopen ' 1' v delu zamenjave besedila. Tu se v vhodnem besedilu išče besedilo »Bas«, eno besedilo se doda prej, drugo pa po » 1«.
$vrgel ven 'Basovski jezik' | sed 's/ (Bash )/Naučite se 1 programiranja/'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Tukaj, ' Nauči se ' besedilo je dodano prej 'Bash' in ' programiranje 'Besedilo se doda za' Bash '.
12. Izbrišite ujemajoče se vrstice
'D' možnost se uporablja v ukazu `sed` za brisanje katere koli vrstice iz datoteke. Ustvarite datoteko z imenom os.txt in dodajte naslednjo vsebino, da preizkusite delovanje 'D' možnost.
mačka os.txt
WindowsLinux
Android
TI
Naslednji ukaz `sed` bo te vrstice izbrisal os.txt datoteko, ki vsebuje besedilo, 'OS'.
$mačkaos.txt$sed '/D'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
13. Izbrišite ujemajočo se vrstico in 2 vrstici po ujemajoči se vrstici
Naslednji ukaz bo izbrisal tri vrstice iz datoteke os.txt če vzorec, ' Linux ' je najdeno. os.txt vsebuje besedilo, 'Linux 'V drugi vrstici. Tako bosta ta vrstica in naslednji dve vrstici izbrisani.
$sed ' / Linux /, + 2d'os.txtIzhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
14. Izbrišite vse presledke na koncu vrstice besedila
Uporaba [: prazno:] class lahko uporabite za odstranjevanje presledkov in zavihkov iz besedila ali vsebine katere koli datoteke. Naslednji ukaz bo odstranil presledke na koncu vsake vrstice datoteke, os.txt.
$mačkaos.txt$sed 's/[[: prazno:]]*$ //'os.txt
Izhod:
os.txt vsebuje prazne vrstice po vsaki vrstici, ki jih izbriše zgornji ukaz `sed`.
15. Izbrišite vse vrstice, ki se na vrstici dvakrat ujemajo
Ustvarite besedilno datoteko z imenom, input.txt z naslednjo vsebino in dvakrat izbrišite tiste vrstice datoteke, ki vsebuje vzorec iskanja.
input.txt
PHP je skriptni jezik na strani strežnika.
PHP je odprtokodni jezik in PHP razlikuje med velikimi in malimi črkami.
PHP je neodvisen od platforme.
Besedilo 'PHP' vsebuje dvakrat v drugi vrstici datoteke, input.txt . V tem primeru se za odstranitev vrstic, ki vsebujejo vzorec, uporabljata dva ukaza sed php ' dvakrat. Prvi ukaz 'sed' bo nadomestil drugi pojav 'php' v vsaki vrstici z ' dl 'In pošljite izhod v drugi ukaz' sed 'kot vhod. Drugi ukaz `sed` bo izbrisal vrstice, ki vsebujejo besedilo, ' dl '.
$mačkainput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Izhod:
input.txt datoteka ima dve vrstici, ki vsebujeta vzorec, 'Php' dvakrat. Tako se po zagonu zgornjih ukazov prikaže naslednji izhod.
16. Izbrišite vse vrstice, ki imajo samo presledke
Izberite katero koli datoteko, ki vsebuje prazne vrstice v vsebini, da preizkusite ta primer. input.txt datoteka, ustvarjena v prejšnjem primeru, vsebuje dve prazni vrstici, ki ju je mogoče izbrisati z naslednjim ukazom `sed`. Tu se ‘^$’ uporablja za odkrivanje praznih vrstic v datoteki, input.txt.
$mačkainput.txt$sed '/^$/d'input.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
17. Izbrišite vse znake, ki jih ni mogoče natisniti
Znake, ki jih ni mogoče natisniti, je mogoče izbrisati iz katerega koli besedila, tako da znakov, ki jih ni mogoče natisniti, zamenjate z nobenim. V tem primeru je razred [: print:] uporabljen za iskanje znakov, ki jih ni mogoče natisniti. ' T' je znak, ki ga ni mogoče natisniti, in ga ni mogoče razčleniti neposredno z ukazom 'echo'. V ta namen je spremenljivki $ tab dodeljen znak ' t', ki se uporablja v ukazu `echo`. Izhod ukaza `echo` se pošlje z ukazom` sed`, ki odstrani znak ' t' iz izhoda.
$zavihek= $' t'$vrgel ven 'Zdravo$ tabWorld'
$vrgel ven 'Zdravo$ tabWorld' | sed 's/[^[: print:]] // g'
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Prvi ukaz `echo bo natisnil izpis s presledkom zavihkov, ukaz` sed` pa natisne izhod po odstranitvi prostora za zavihke.
18. Če obstaja ujemanje v vrsti, dodajte nekaj na konec vrstice
Naslednji ukaz bo dodal '10' na konec vrstice, ki vsebuje besedilo, 'Windows' v os.txt mapa.
$mačkaos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Izhod:
Po zagonu ukaza se prikaže naslednji izhod.
19. Če se v vrstici ujema, vnesite vrstico pred besedilom
Naslednji ukaz `sed` bo iskal besedilo, ' PHP je neodvisen od platforme ' v input.txt datoteko, ki je bila prej ustvarjena. Če datoteka vsebuje to besedilo v kateri koli vrstici, se prikaže sporočilo ' PHP je tolmačeni jezik ' bo vstavljen pred to vrstico.
$mačkainput.txt$sed '/PHP je neodvisen od platforme/s/^/PHP je interpretiran jezik. N/'input.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
20. Če se v vrstici ujema, vnesite vrstico za to vrstico
Naslednji ukaz `sed` bo iskal besedilo, ' Linux ' v datoteki os.txt in če besedilo obstaja v kateri koli vrstici, potem novo besedilo, ' Ubuntu 'Se vstavi za to vrstico.
$mačkaos.txt$sed 's/Linux/& nUbuntu/'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
21. Če ni ujemanja, dodajte nekaj na konec vrstice
Naslednji ukaz `sed` bo iskal te vrstice v os.txt ki ne vsebuje besedila, 'Linux' in priloži besedilo: Operacijski sistem 'Na koncu vsake vrstice. Tukaj, ' $ 'Simbol se uporablja za označevanje vrstice, kamor bo dodano novo besedilo.
$mačkaos.txt$sed '/Linux/! S/$/Operacijski sistem/'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. V datoteki os.txt obstajajo tri vrstice, ki ne vsebujejo besedila, 'Linux' in novega besedila, dodanega na koncu teh vrstic.
22. Če ni ujemanja, izbrišite vrstico
Ustvarite datoteko z imenom web.txt in dodajte naslednjo vsebino ter izbrišite vrstice, ki ne vsebujejo ustreznega vzorca. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Naslednji ukaz `sed` bo poiskal in izbrisal tiste vrstice, ki ne vsebujejo besedila, 'CSS'. $ cat web.txt $ sed '/CSS/! d' web.txt Izhod: Po zagonu zgornjih ukazov se prikaže naslednji izhod. V datoteki obstaja ena vrstica, ki vsebuje besedilo, 'CSE'. Torej izhod vsebuje samo eno vrstico.
23. Podvojite ujemajoče se besedilo, potem ko dodate besedilo za besedilom
Naslednji ukaz `sed` bo poiskal besedo 'do' v datoteki, python.txt in če beseda obstaja, se ista beseda vstavi za iskalno besedo z dodajanjem presledka. Tukaj, '&' simbol se uporablja za dodajanje podvojenega besedila.
$mačkapython.txt$sed -In 's / to / & to / g'python.txt
Izhod:
Po zagonu ukazov se prikaže naslednji izhod. Tu se v datoteki išče beseda »do«, python.txt in ta beseda obstaja v drugi vrstici te datoteke. Torej, ‘Do ’Za ujemajočim se besedilom doda presledek.
24. En seznam nizov zamenjajte z novim nizom
Za preizkus tega primera morate ustvariti dve datoteki s seznamom. Ustvarite besedilno datoteko z imenom list1.txt in dodajte naslednjo vsebino.
cat list1.txt
1001=>Jafar Ali1023=>Nir Hossain
1067=>John michel
Ustvarite besedilno datoteko z imenom list2.txt in dodajte naslednjo vsebino.
$ cat list2.txt
1001CSE GPA3.631002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3,84
Naslednji ukaz `sed` se bo ujemal s prvim stolpcem dveh zgoraj prikazanih besedilnih datotek in ujemajoče se besedilo nadomestil z vrednostjo tretjega stolpca datoteke list1.txt.
$mačkalist1.txt$mačkalist2.txt
$sed ''mačkalist1.txt| awk '{print' -e s / '$ 1' / '$ 3' / '}'''<<<''seznam mačk2.txt''
Izhod:
1001, 1023 in 1067 od list1.txt datoteke ujemajo s tremi podatki list2.txt datoteko, te vrednosti pa nadomestijo ustrezna imena tretjega stolpca datoteke list1.txt .
25. Ustrezni niz zamenjajte z nizom, ki vsebuje nove vrstice
Naslednji ukaz bo prevzel vnos iz ukaza `echo` in poiskal besedo, 'Python' v besedilu. Če beseda obstaja v besedilu, potem novo besedilo, 'Dodano besedilo' bo vstavljen z novo vrstico. $ echo Bash Perl Python Java PHP ASP | sed ‘s/Python/Dodano besedilo n/’ Izhod: Po zagonu zgornjega ukaza se prikaže naslednji izhod.
26. Iz datoteke odstranite nove vrstice in na konec vsake vrstice vstavite vejico
Naslednji ukaz `sed` bo vsako novo vrstico zamenjal z vejico v datoteki os.txt . Tukaj, -Z možnost se uporablja za ločevanje vrstice z znakom NULL.
$sed -Z 's/ n/,/g'os.txtIzhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
27. Odstranite vejice in dodajte novo vrstico, da razdelite besedilo na več vrstic
Naslednji ukaz `sed` bo vzel vrstico, ločeno z vejicami, iz ukaza` echo` kot vhod in vejico nadomestil z novo vrstico.
$vrgel ven 'Kaniz Fatema, 30., serija' | sed 's/,/ n/g 'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Vhodno besedilo vsebuje tri podatke, ločene z vejicami, ki jih nadomesti nova vrstica in natisnejo v treh vrsticah.
28. Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami, in izbriši vrstico
'I' se uporablja v ukazu 'sed' za ujemanje, ki ne razlikuje med velikimi in malimi črkami, kar kaže na ignoriranje velikih in malih črk. Naslednji ukaz `sed` bo iskal vrstico, ki vsebuje besedo, ‘Linux 'In izbrišite vrstico iz os.txt mapa.
$mačkaos.txt$sed '/linux/Id'os.txt
Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. os.txt vsebuje besedo 'Linux', ki se ujema z vzorcem, 'linux' za iskanje, ki ne razlikuje med velikimi in malimi črkami, in izbrisano.
29. Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami, in ga zamenjaj z novim
Naslednji ukaz `sed` bo prevzel vnos iz ukaza` echo` in besedo 'bash' nadomestil z besedo 'PHP'.
$vrgel ven 'Všeč mi je programiranje bash' | sed 's/Bash/PHP/i'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Tu se beseda „Bash“ ujema z besedo „bash“ za iskanje, ki ne razlikuje med velikimi in malimi črkami, in se nadomesti z besedo „PHP“.
30. Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami istega besedila
' U' se uporablja v `sed` za pretvorbo katerega koli besedila v vse velike črke. Naslednji ukaz `sed` bo iskal besedo, ‘Linux 'V os.txt datoteko in če beseda obstaja, bo besedo nadomestila z vsemi velikimi črkami.
$mačkaos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Beseda 'Linux' datoteke os.txt se nadomesti z besedo 'LINUX'.
31. Poišči ujemanje, ki ne razlikuje med velikimi in malimi črkami istega besedila
' THE' se uporablja v `sed` za pretvorbo katerega koli besedila v vse male črke. Naslednji ukaz `sed` bo iskal besedo, 'Linux' v os.txt datoteko in besedo zamenjajte z vsemi malimi črkami.
$mačkaos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Beseda 'Linux' se tukaj nadomesti z besedo 'linux'.
32. Zamenjaj vse velike črke besedila z malimi črkami
Naslednji ukaz `sed` bo iskal vse velike črke v os.txt datoteko in zamenjajte znake z malimi črkami z uporabo ' L'.
$mačkaos.txt$sed 's/ (.*)/ L 1/'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
33. Poiščite številko v vrstici in dodajte poljuben simbol valute pred številko
Ustvarite datoteko z imenom items.txt z naslednjo vsebino.
items.txt
Trdi disk 100Monitor 80
Miška 10
Naslednji ukaz `sed` bo poiskal številko v vsaki vrstici items.txt datoteko in pred vsako številko dodajte simbol valute ‘$’.
$mačkaitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Tu se pred številko vsake vrstice doda simbol »$«.
34. Številkam, ki imajo več kot 3 številke, dodaj vejice
Naslednji ukaz `sed` bo vzel številko kot ukaz` echo` in dodal vejico za vsako skupino treh števk, šteto od desne. Tukaj ': a' označuje oznako, 'ta' pa se uporablja za ponovitev procesa združevanja.
$vrgel ven '5098673' | sed -In: do-In 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Izhod:
Številka 5098673 je podana v ukazu `echo` in ukaz` sed` je ustvaril številko 5,098,673 z dodajanjem vejice za vsako skupino treh števk.
35. Zamenja znak zavihka s 4 presledki
Naslednji ukaz `sed` bo vsak znak zavihka ( t) nadomestil s štirimi presledki. Simbol '$' se uporablja v ukazu 'sed' za ujemanje znaka zavihka, 'g' pa za zamenjavo vseh znakov zavihkov.
$vrgel ven -In '1 t2 t3 ' | sed$'s/ t//g'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
36. Zamenja 4 zaporedne presledke z znakom zavihka
Naslednji ukaz bo zamenjal 4 zaporedne znake z znakom tabulator ( t).
$vrgel ven -In '1 2' | sed$'s// t/g'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
37. Vse vrstice okrnite na prvih 80 znakov
Ustvarite besedilno datoteko z imenom in.txt ki vsebuje vrstice z več kot 80 znaki za preizkus tega primera.
in.txt
PHP je skriptni jezik na strani strežnika.
PHP je odprtokodni jezik in PHP razlikuje med velikimi in malimi črkami. PHP je neodvisen od platforme.
Naslednji ukaz `sed` bo skrajšal vsako vrstico in.txt datoteko v 80 znakov.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Druga vrstica datoteke in.txt vsebuje več kot 80 znakov in ta vrstica je v izhodu okrnjena.
38. Poiščite regex niza in po njem dodajte standardno besedilo
Naslednji ukaz `sed` bo iskal besedilo, ' zdravo 'V vnosnem besedilu in besedilo dodaj,' Janez 'Po tem besedilu.
$vrgel ven 'Živjo kako si?' | sed 's/ (zdravo )/ 1 Janez/'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
39. Poiščite regex nizov in dodajte drugo besedilo po drugem ujemanju v vsako vrstico
Naslednji ukaz `sed` bo iskal besedilo, ' PHP 'V vsaki vrstici input.txt in drugo ujemanje v vsaki vrstici nadomesti z besedilom, 'Dodano novo besedilo' .
$mačkainput.txt$sed 's/ (PHP )/ 1 (dodano novo besedilo)/2'input.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Iskalno besedilo, ' PHP «Se dvakrat prikaže v drugi in tretji vrstici input.txt mapa. Torej besedilo, ' Dodano novo besedilo “Se vstavi v drugo in tretjo vrstico.
40. Izvajanje večvrstičnih skriptov `sed` iz datoteke
Več datotek `sed` lahko shranite v datoteko in vse skripte lahko izvedete skupaj z ukazom` sed`. Ustvarite datoteko z imenom 'Sedcmd 'In dodajte naslednjo vsebino. Tu sta v datoteko dodana dva skripta `sed`. En skript bo nadomestil besedilo, ' PHP 'Avtor: „ASP 'Drug skript bo nadomestil besedilo,' neodvisen 'Po besedilu,' odvisni '.
sedcmd
s/PHP/ASP/s/neodvisen/odvisni/
Naslednji ukaz 'sed' bo nadomestil vse 'PHP' in 'neodvisno' besedilo z 'ASP' in 'odvisno'. Tukaj se v ukazu `sed` uporablja možnost '-f' za izvajanje skripta` sed` iz datoteke.
$mačkasedcmd$sed -fsedcmd input.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
41. Ujemi večvrstični vzorec in ga zamenjaj z novim večvrstičnim besedilom
Naslednji ukaz `sed` bo iskal večvrstično besedilo, 'Linux nAndroid' in če se vzorec ujema, bodo ujemajoče se vrstice nadomeščene z več vrsticami, ‘Ubuntu nAndroid Lollipop ‘. Tu se P in D uporabljata za večvrstično obdelavo.
$mačkaos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
42. Zamenjaj vrstni red dveh besed v besedilu, ki se ujemata z vzorcem
Naslednji ukaz `sed` bo vzel dve besedi iz ukaza` echo` in nadomestil vrstni red teh besed.
$vrgel ven 'perl python' | sed -In 's/ ([^]*)* ([^]*)/ 2 1/'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
43. Iz ukazne vrstice izvedite več ukazov `sed`
Možnost '-e' se uporablja v ukazu `sed` za izvajanje več skriptov` sed` iz ukazne vrstice. Naslednji ukaz `sed` bo vzel besedilo kot ukaz 'echo' in nadomestil ' Ubuntu 'Avtor' Kubuntu 'In' stotine 'Avtor' Fedora '.
$vrgel ven 'Ubuntu Centos Debian' | sed -In 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Tu se 'Ubuntu' in 'Centos' nadomestita z 'Kubuntu' in 'Fedora'.
44. Združite `sed` z drugimi ukazi
Naslednji ukaz bo združil ukaz `sed` z ukazom` cat`. Prvi ukaz `sed` bo prevzel iz os.txt datoteko in pošljite izpis ukaza drugemu ukazu sed, potem ko besedilo »Linux« zamenjate s »Fedora«. Drugi ukaz 'sed' bo nadomestil besedilo 'Windows' z 'Windows 10'.
$mačkaos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
45. V datoteko vstavite prazno vrstico
Ustvarite datoteko z imenom stdlist z naslednjo vsebino.
stdlist
#ID #Ime[101] -Ali
[102] -Neha
Možnost 'G' se uporablja za vstavljanje prazne vrstice v datoteko. Naslednji ukaz `sed` bo po vsaki vrstici vstavil prazne vrstice stdlist mapa.
$mačkastdlist$sedG stdlist
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod. Za vsako vrstico datoteke se vstavi prazna vrstica.
46. Zamenjaj vse alfanumerične znake s presledki v vsaki vrstici datoteke.
Naslednji ukaz bo zamenjal vse alfanumerične znake s presledkom v stdlist mapa.
$mačkastdlist$ ampak 's / [A-Za-z0-9] // g'stdlist
Izhod:
Po zagonu zgornjih ukazov se prikaže naslednji izhod.
47. Uporabite '&' za tiskanje ujemajočega se niza
Naslednji ukaz bo iskal besedo, ki se začne z 'L', in besedilo nadomestil z dodajanjem 'Ujemajoči se niz je - 'Z ujemajočo se besedo s simbolom' & '. Tukaj se 'p' uporablja za tiskanje spremenjenega besedila.
$sed -n 's/^L/Ujemajoči se niz je - &/p'os.txtIzhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod.
48. Preklopite par besed v datoteki
Ustvarite besedilno datoteko z imenom course.txt z naslednjo vsebino, ki vsebuje par besed v vsaki vrstici.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Naslednji ukaz bo zamenjal par besed v vsaki vrstici datoteke, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtIzhod:
Po zamenjavi para besed v vsaki vrstici se prikaže naslednji izhod.
49. Z veliko začetnico vsake besede
Naslednji ukaz `sed` bo vzel vhodno besedilo iz ukaza` echo` in prvi znak vsake besede pretvoril v veliko črko.
$vrgel ven 'Všeč mi je programiranje bash' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Izhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. Vnosno besedilo, všeč mi je bash programiranje, je natisnjeno kot Všeč mi je programiranje basha, potem ko je prva beseda napisana z veliko začetnico.
50. Natisnite številke vrstic datoteke
'=' Simbol se uporablja za ukaz `sed 'za tiskanje številke vrstice pred vsako vrstico datoteke. Naslednji ukaz bo natisnil vsebino datoteke os.txt datoteko s številko vrstice.
$sed '='os.txtIzhod:
Po zagonu zgornjega ukaza se prikaže naslednji izhod. V njem so štiri vrstice os.txt mapa. Številka vrstice je torej natisnjena pred vsako vrstico datoteke.
Zaključek:
Različne uporabe ukaza `sed` so razložene v tej vadnici z uporabo zelo preprostih primerov. Izhod vseh 'sed' skriptov, omenjenih tukaj, je ustvarjen začasno, vsebina izvirne datoteke pa je ostala nespremenjena. Če pa želite, lahko spremenite izvirno datoteko z možnostjo –i ali –in-place za ukaz `sed. Če ste nov uporabnik Linuxa in se želite naučiti osnovne uporabe ukaza `sed` za izvajanje različnih vrst manipulacij nizov, vam bo ta vadnica v pomoč. Upajmo, da bo vsak uporabnik po branju te vadnice dobil jasen koncept o funkcijah ukaza `sed`.
Pogosto zastavljena vprašanja
Za kaj se uporablja ukaz sed?
Ukaz sed ima različne namene. Ob tem je glavna uporaba zamenjava besed v datoteki ali iskanje in zamenjava.
Odlična stvar sed -a je, da lahko iščete besedo v datoteki in jo zamenjate, vendar datoteke nikoli ni treba odpreti - sed naredi vse namesto vas!
Poleg tega se lahko uporablja tudi za brisanje. Vse, kar morate storiti, je, da besedo, ki jo želite najti, zamenjate ali izbrišete, vnesete v sed in vam jo prikaže - nato se lahko odločite, da to besedo zamenjate ali izbrišete vse sledi besede.
sed je odlično orodje, s katerim lahko zamenjate stvari, kot so naslovi IP in vse, kar je zelo občutljivo, česar sicer ne bi želeli vnesti v datoteko. sed je treba vedeti za vsakega programskega inženirja!
Kaj sta S in G v ukazu sed?
Preprosto povedano, funkcija S, ki jo lahko uporabimo v sed, preprosto pomeni 'nadomestek'. Po vnosu S lahko zamenjate ali zamenjate karkoli želite - samo tipkanje S bo nadomestilo samo prvi pojav besede v vrstici.
Zato, če imate stavek ali vrstico, ki jih omenja večkrat, funkcija S ni idealna, saj bo nadomestila samo prvi pojav. Določite lahko vzorec, s katerim bo S zamenjal besede na vsaka dva pojavljanja.
Določitev G na koncu ukaza sed bo naredila globalno zamenjavo (to pomeni G). Če upoštevate to, bo, če podate G, nadomestilo vsak pojav besede, ki ste jo izbrali, in ne le prvega pojavljanja, ki ga naredi S.
Kako zaženem skript sed?
Sed skript lahko zaženete na več načinov, najpogosteje pa v ukazni vrstici. Tukaj lahko samo določite sed in datoteko, za katero želite uporabiti ukaz.
To vam omogoča uporabo sed v tej datoteki, kar vam omogoča, da po potrebi poiščete, izbrišete in zamenjate.
Uporabite ga lahko tudi v lupinskem skriptu in na ta način lahko skriptu posredujete vse, kar želite, in za vas izvede zagon find and replace. To je uporabno, če v skriptu ne želite podati zelo občutljivih podatkov, zato jih lahko posredujete kot spremenljivko
Upoštevajte, da je to seveda na voljo samo v Linuxu, zato boste morali zagnati ukazno vrstico Linuxa, če želite zagnati skript sed.