Ukaz SED v sistemu UNIX pomeni urejevalnik toka in lahko izvaja veliko funkcij v datoteki, kot so iskanje, iskanje in zamenjava, vstavljanje ali brisanje. Čeprav je najpogostejša uporaba ukaza SED v sistemu UNIX za zamenjavo ali iskanje in zamenjavo. Z uporabo SED lahko urejate datoteke, tudi ne da bi jih odprli, kar je veliko hitrejši način, da najdete in zamenjate nekaj v datoteki, kot da to datoteko najprej odprete v urejevalniku VI in jo nato spremenite.
- SED je zmogljiv urejevalnik besedilnih tokov. Lahko izvaja vstavljanje, brisanje, iskanje in zamenjavo (zamenjava).
- Ukaz SED v unixu podpira regularne izraze, kar mu omogoča izvajanje kompleksnega ujemanja vzorcev.
Sintaksa:
sed OPTIONS... [SCRIPT] [INPUTFILE...]>
primer:
Spodnjo besedilno datoteko upoštevajte kot vhod.
$cat>geekfile.txt>
unix is great os. unix is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Vzorčni ukazi
- Zamenjava ali zamenjava niza : Ukaz Sed se večinoma uporablja za zamenjavo besedila v datoteki. Spodnji preprost ukaz sed nadomesti besedo unix z linux v datoteki.
$sed 's/unix/linux/' geekfile.txt>
Izhod:
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Tukaj s določa operacijo zamenjave. / sta ločila. Unix je iskalni vzorec, linux pa nadomestni niz.
java dolgo v niz
Privzeto ukaz sed nadomesti prvo pojavitev vzorca v vsaki vrstici in ne bo nadomestil druge, tretje ... pojavitve v vrstici. Zamenjava n-te pojavitve vzorca v vrstici : uporabite zastavice /1, /2 itd., da zamenjate prvo, drugo pojavitev vzorca v vrstici. Spodnji ukaz zamenja drugo pojavitev besede unix z linux v vrstici.
$sed 's/unix/linux/2' geekfile.txt>
Izhod:
unix is great os. linux is opensource. unix is free os. learn operating system. unix linux which one you choose. unix is easy to learn.linux is a multiuser os.Learn unix .unix is a powerful.>Zamenjava vseh pojavitev vzorca v vrstici : nadomestna zastavica /g (globalna zamenjava) podaja ukaz sed za zamenjavo vseh pojavitev niza v vrstici.
$sed 's/unix/linux/g' geekfile.txt>
Izhod:
css centriranje slike
linux is great os. linux is opensource. linux is free os. learn operating system. linux linux which one you choose. linux is easy to learn.linux is a multiuser os.Learn linux .linux is a powerful.>Zamenjava z n-te pojavitve na vse pojavitve v vrstici: uporabite kombinacijo /1, /2 itd. in /g, da zamenjate vse vzorce iz n-te pojavitve vzorca v vrstici. Naslednji ukaz sed zamenja tretjo, četrto, peto ... besedo unix z besedo linux v vrstici.
$sed 's/unix/linux/3g' geekfile.txt>
Izhod:
unix is great os. unix is opensource. linux is free os. learn operating system. unix linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn linux .linux is a powerful.>Oklepaj prvi znak vsake besede : Ta primer sed natisne prvi znak vsake besede v oklepaju.
$ echo 'Welcome To The Geek Stuff' | sed 's/([A-Z])/(1)/g'>
Izhod:
(W)elcome (T)o (T)he (G)eek (S)tuff>Zamenjava niza v določeni številki vrstice : Ukaz sed lahko omejite tako, da zamenja niz v določeni številki vrstice. Primer je
$sed '3 s/unix/linux/' geekfile.txt>
Izhod:
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Zgornji ukaz sed zamenja niz samo v tretji vrstici. Podvojitev zamenjane vrstice z zastavico /p : Zastavica za tiskanje /p dvakrat natisne zamenjano vrstico na terminalu. Če vrstica nima iskalnega vzorca in ni zamenjana, /p natisne to vrstico samo enkrat.
$sed 's/unix/linux/p' geekfile.txt>
Izhod:
linux is great os. unix is opensource. unix is free os. linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>Tiskanje samo zamenjanih vrstic: uporabite možnost -n skupaj z zastavico za tiskanje /p, da prikažete samo zamenjane vrstice. Tukaj možnost -n prepreči podvojene vrstice, ki jih ustvari zastavica /p, in natisne zamenjane vrstice samo enkrat.
$sed -n 's/unix/linux/p' geekfile.txt>
Izhod:
linux is great os. unix is opensource. unix is free os. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Če uporabite samo -n brez /p, potem sed ne natisne ničesar. Zamenjava niza v obsegu vrstic : podate lahko obseg številk vrstic ukazu sed za zamenjavo niza.
$sed '1,3 s/unix/linux/' geekfile.txt>
Izhod:
if else stavek v Javi
linux is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. unix is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful.>
Tu ukaz sed zamenja vrstice z obsegom od 1 do 3. Drug primer je
$sed '2,$ s/unix/linux/' geekfile.txt>
Izhod:
unix is great os. unix is opensource. unix is free os. learn operating system. linux linux which one you choose. linux is easy to learn.unix is a multiuser os.Learn unix .unix is a powerful>
Tukaj $ označuje zadnjo vrstico v datoteki. Tako ukaz sed nadomesti besedilo od druge vrstice do zadnje vrstice v datoteki. Brisanje vrstic iz določene datoteke : Ukaz SED lahko uporabite tudi za brisanje vrstic iz določene datoteke. Ukaz SED se uporablja za izvedbo operacije brisanja, ne da bi sploh odprli datoteko
Primeri:
1. Če želite izbrisati določeno vrstico, v tem primeru recite n
Syntax: $ sed 'nd' filename.txt Example: $ sed '5d' filename.txt>
2. Za brisanje zadnje vrstice
Syntax: $ sed '$d' filename.txt>
3. Za brisanje črte od območja x do y
Syntax: $ sed 'x,yd' filename.txt Example: $ sed '3,6d' filename.txt>
4. Za brisanje od n-te do zadnje vrstice
Syntax: $ sed 'nth,$d' filename.txt Example: $ sed '12,$d' filename.txt>
5. Za brisanje črte za ujemanje vzorca
np.argmax
Syntax: $ sed '/pattern/d' filename.txt Example: $ sed '/abc/d' filename.txt>
Ukaz SED v Linuxu | Komplet 2