Sekojošā izvade parāda, ka GNU Sed versija 4.4 ir instalēta sistēmā.
Sintakse:
sed [iespējas]...[skripts] [failu]
Ja ar komandu `sed` netiek nodrošināts neviens faila nosaukums, tad skripts darbosies ar standarta ievades datiem. Skriptu 'sed' var izpildīt bez jebkādām opcijām.
Saturs :
- Pamata teksta aizstāšana, izmantojot “sed”
- Aizstājiet visus teksta gadījumus noteiktā faila rindā, izmantojot opciju “g”
- Katrā rindiņā aizstājiet tikai sakritības otro gadījumu
- Katrā rindā aizstājiet tikai sakritības pēdējo gadījumu
- Faila pirmo atbilstību aizstājiet ar jaunu tekstu
- Aizstājiet pēdējo atbilstību failā ar jaunu tekstu
- Aizbīdes slīpsvītra aizstāšanas komandās, lai pārvaldītu failu ceļu meklēšanu un aizstāšanu
- Aizstājiet visu failu pilnu ceļu ar tikai faila nosaukumu bez direktorijas
- Aizstāt tekstu, bet tikai tad, ja virknē tiek atrasts cits teksts
- Aizstāt tekstu, bet tikai tad, ja virknē nav atrasts cits teksts
- Pievienojiet virkni pirms atbilstošā modeļa, izmantojot “ 1 '
- Dzēsiet atbilstošās rindas
- Dzēsiet atbilstošo rindu un 2 rindas pēc atbilstošās rindas
- Dzēsiet visas atstarpes teksta rindas beigās
- Divas reizes dzēsiet visas rindiņas, kurām ir atbilstība
- Izdzēsiet visas rindas ar vienīgo atstarpi
- Dzēsiet visas nedrukājamās rakstzīmes
- Ja rindā ir sakritība, rindas beigās pievienojiet kaut ko
- Ja rindas ievietošanas rindā pirms spēles ir sakritība
- Ja rindas ievietošanas rindā pēc spēles ir sakritība
- Ja neatbilst, pievienojiet kaut ko rindas beigās
- Ja nav atbilstības, dzēsiet rindu
- Pēc atstarpes pievienošanas aiz teksta dublējiet atbilstošo tekstu
- Aizstājiet vienu no virkņu saraksta ar jauno virkni
- Nomainiet atbilstošo virkni ar virkni, kurā ir jaunas rindas
- Noņemiet no faila jaunas rindas un ievietojiet komatu katras rindas beigās
- Noņemiet komatus un pievienojiet jaunas rindiņas, lai sadalītu tekstu vairākās rindās
- Atrodiet burtu nejutīgo atbilstību un dzēsiet rindiņu
- Atrodiet burtu nejutīgo atbilstību un aizstājiet ar jaunu tekstu
- Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena un tā paša teksta lielajiem burtiem
- Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena teksta mazajiem burtiem
- Aizstājiet visas lielās rakstzīmes tekstā ar mazajiem burtiem
- Atrodiet numuru rindā un pievienojiet valūtas simbolu aiz numura
- Pievienojiet komatus skaitļiem, kuros ir vairāk nekā 3 cipari
- Aizstājiet cilnes rakstzīmes ar 4 atstarpes rakstzīmēm
- Aizstājiet 4 secīgas atstarpes rakstzīmes ar tabulēšanas rakstzīmi
- Saīsiniet visas rindas līdz pirmajām 80 rakstzīmēm
- Meklējiet virknes regulāro tekstu un pievienojiet tam standarta tekstu
- Meklējiet virknes regulāro izteiksmi un atrasto virknes otro kopiju pēc tās
- Vairāku rindu 'sed' skriptu palaišana no faila
- Saskaņojiet daudzrindu modeli un aizstājiet ar jaunu daudzrindu tekstu
- Aizstājiet divu vārdu secību, kas atbilst modelim
- Izmantojiet vairākas sed komandas no komandrindas
- Apvienojiet sed ar citām komandām
- Ievietojiet failā tukšu rindu
- Izdzēsiet visas burtciparu rakstzīmes no katras faila rindas.
- Izmantojiet “&”, lai saskaņotu virkni
- Pārslēgt vārdu pāri
- Katra vārda pirmo rakstzīmi lieto ar lielo burtu
- Drukājiet faila rindu numurus
1. Pamata teksta aizstāšana, izmantojot “sed”
Jebkuru konkrētu teksta daļu var meklēt un aizstāt, izmantojot meklēšanas un aizstāšanas modeli, izmantojot komandu `sed`. Nākamajā piemērā “s” norāda meklēšanas un aizstāšanas uzdevumu. Vārds “Bash” tiks meklēts tekstā, Bash Scripting Language, un, ja vārds tekstā pastāv, tas tiks aizstāts ar vārdu “Perl”.
$izmest ārā 'Bash skriptu valoda' | sed 's/Bash/Perl/'
Izeja:
Teksts satur vārdu “Bash”. Tātad iznākums ir “Perl skriptu valoda”.
Komandu 'sed' var izmantot, lai aizstātu arī jebkuru faila satura daļu. Izveidojiet teksta failu ar nosaukumu weekday.txt ar šādu saturu.
weekday.txt
PirmdienaOtrdiena
Trešdiena
Ceturtdiena
Piektdiena
Sestdiena
Svētdiena
Šī komanda meklēs un aizstās tekstu “svētdiena” ar tekstu “svētdiena ir brīvdiena”.
$kaķisweekday.txt$sed 's/svētdiena/svētdiena ir brīvdiena/'weekday.txt
Izeja:
“Sunday” ir faila weekday.txt failā, un pēc iepriekš minētās komandas “sed” izpildīšanas šis vārds tiek aizstāts ar tekstu “Sunday is holiday”.
2. Aizstājiet visus teksta gadījumus noteiktā faila rindā, izmantojot opciju “g”
'G' opcija tiek izmantota komandā 'sed', lai aizstātu visus atbilstošā modeļa gadījumus. Izveidojiet teksta failu ar nosaukumu python.txt ar šādu saturu, lai zinātu opcijas “g” izmantošanu. Šajā failā ir vārds. 'Python' vairākas reizes.
python.txt
Python ir ļoti populāra valoda.
Python ir viegli lietojams. Python ir viegli iemācīties.
Python ir starpplatformu valoda
Šī komanda aizstās visus “ Python 'Faila otrajā rindā, python.txt . Šeit, 'Python' otrajā rindā notiek divas reizes.
$ kaķu pitons.txt$ sed“2 s / Python / perl / g”pitons.txt
Izeja:
Pēc skripta palaišanas parādīsies šāda izvade. Šeit visi “Python” gadījumi otrajā rindā tiek aizstāti ar “Perl”.
3. Katrā rindiņā aizstājiet tikai sakritības otro gadījumu
Ja kāds vārds failā parādās vairākas reizes, tad konkrēto vārda sastopamību katrā rindā var aizstāt, izmantojot komandu 'sed' ar notikuma numuru. Šāda komanda 'sed' aizstās meklēšanas modeļa otro parādīšanos katrā faila rindā, python.txt .
$ sed's/Python/perl/g2'pitons.txtIzeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit meklējamais teksts ' Python ' divas reizes parādās tikai otrajā rindā, un to aizstāj ar tekstu “ Perl '.
4. Katrā rindiņā aizstājiet tikai sakritības pēdējo gadījumu
Izveidojiet teksta failu ar nosaukumu lang.txt ar šādu saturu.
lang.txt
Bash programmēšanas valoda. Python programmēšanas valoda. Perl programmēšanas valoda.
Hiperteksta iezīmēšanas valoda.
Paplašināma iezīmēšanas valoda.
5. Aizstājiet pirmo atbilstību failā ar jaunu tekstu
Šī komanda aizstās tikai meklēšanas modeļa pirmo atbilstību, ' Python 'Pēc teksta, ‘Perl ‘. Šeit, '1' tiek izmantots, lai atbilstu modeļa pirmajai parādībai.
$ kaķu pitons.txt$ sed'1 s / Python / perl /'pitons.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Šeit. pirmo “Python” parādīšanos pirmajā rindā aizstāj ar “perl”.
6. Aizstājiet pēdējo atbilstību failā ar jaunu tekstu
Šī komanda aizstās pēdējo meklēšanas modeļa parādīšanos, 'Pitons 'Pēc teksta, ‘Bašs’. Šeit, “$” simbols tiek izmantots, lai atbilstu pēdējā raksta gadījumam.
$ kaķu pitons.txt$ sed -e'$ s / Python / Bash /'pitons.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
7. Aizmugurējā slīpsvītra aizvietošanas komandās, lai pārvaldītu meklēšanu un failu ceļu nomaiņu
Meklēšanai un aizstāšanai faila ceļā ir jāizvairās no slīpsvītras. Šī komanda 'sed' pievienos slīpsvītru () faila ceļā.
$izmest ārā /mājas/ubuntu/kods/perl/add.pl| sed 's; /; \ /; g'Izeja:
Faila ceļš, “/Home/ubuntu/code/perl/add.pl” tiek sniegta kā ievads komandā 'sed', un pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
8. Aizstāt visu failu pilnu ceļu ar tikai faila nosaukumu bez direktorijas
Faila nosaukumu var ļoti viegli iegūt no faila ceļa, izmantojot ' basename ' komandu. Komandu 'sed' var izmantot arī, lai izgūtu faila nosaukumu no faila ceļa. Šī komanda izgūs faila nosaukumu tikai no faila ceļa, ko nodrošina komanda 'echo'.
$izmest ārā '/home/ubuntu/temp/myfile.txt' | sed 's /.*///'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit ir faila nosaukums ' myfile.txt ” tiek izdrukāts kā izvade.
9. Aizstāt tekstu, bet tikai tad, ja virknē ir atrasts kāds cits teksts
Izveidojiet failu ar nosaukumu ' dept.txt ” ar šādu saturu, lai aizstātu jebkuru tekstu, kura pamatā ir cits teksts.
Dept.txt
Kopējais studentu saraksts:
CSE - skaitsEEE - grāfs
Civil - grāfs
Šādā komandā 'sed' tiek izmantotas divas aizstāšanas komandas. Šeit teksts ' Skaits 'Tiks aizstāts ar 100 rindā, kurā ir teksts, “PMP 'Un teksts' Skaitīt ” tiks aizstāts ar 70 rindā, kurā ir meklēšanas modelis, “ EEE ” .
$kaķisDept.txt$sed -Un '/CSE/s/Count/100/; /EEE/s/Count/70/; 'Dept.txt
Izeja:
Pēc iepriekš minēto komandu izpildes parādīsies šāda izvade.
10. Aizstāt tekstu, bet tikai tad, ja virknē nav atrasts cits teksts
Šī komanda 'sed' aizstās vērtību 'Count' rindā, kurā nav teksta 'CSE'. Dept.txt failā ir divas rindas, kurās nav teksta “CSE”. Tātad, ' Skaits “Teksts tiks aizstāts ar 80 divās rindās.
$kaķisDept.txt$sed -i -Un '/PMP/! s/Count/80/; 'Dept.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
11. Pievienojiet virkni pirms un pēc atbilstošā modeļa, izmantojot “ 1”
Komandas 'sed' atbilstošo modeļu secība tiek apzīmēta ar ' 1', ' 2' un tā tālāk. Šī komanda 'sed' meklēs modeli 'Bash', un, ja modelis atbilst, teksta aizstāšanas daļā tam piekļūs ar ' 1'. Šeit ievades tekstā tiek meklēts teksts “Bash” un viens teksts tiek pievienots pirms un cits teksts tiek pievienots pēc “ 1”.
$izmest ārā 'Bash valoda' | sed 's/ (Bash )/Learn 1 programmēšana/'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit, ' Uzziniet ' teksts ir pievienots iepriekš 'Bash' un ' programmēšana 'Teksts tiek pievienots pēc' Bašs ”.
12. Dzēsiet atbilstošās rindiņas
“D” opcija tiek izmantota komandā 'sed', lai no faila izdzēstu jebkuru rindu. Izveidojiet failu ar nosaukumu os.txt un pievienojiet šādu saturu, lai pārbaudītu “D” iespēja.
kaķis os.txt
WindowsLinux
Android
TU
Šī komanda 'sed' izdzēsīs šīs rindas no os.txt fails, kurā ir teksts “OS”.
$kaķisos.txt$sed '/D'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
13. Izdzēsiet atbilstošo rindu un 2 rindiņas aiz atbilstošās rindas
Šī komanda izdzēsīs trīs rindas no faila os.txt ja modelis, ' Linux ” ir atrasts. os.txt satur tekstu, 'Linux 'Otrajā rindā. Tātad šī rinda un nākamās divas rindiņas tiks dzēstas.
$sed ' / Linux /, + 2d'os.txtIzeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
14. Dzēsiet visas atstarpes teksta rindas beigās
Izmantojot [: tukšs:] klasi var izmantot, lai no teksta vai jebkura faila satura noņemtu atstarpes un cilnes. Šī komanda noņems atstarpes katras faila rindas beigās, os.txt.
$kaķisos.txt$sed 's/[[: blank:]]*$ //'os.txt
Izeja:
os.txt satur tukšas rindas pēc katras rindas, kuras tiek izdzēstas ar iepriekš minēto komandu `sed`.
15. Divas reizes uz līnijas izdzēsiet visas rindas, kurām ir sakritība
Izveidojiet teksta failu ar nosaukumu, input.txt ar šādu saturu un divas reizes izdzēsiet tās faila rindas, kurās ir meklēšanas modelis.
input.txt
PHP ir servera puses skriptu valoda.
PHP ir atvērtā pirmkoda valoda, un PHP ir reģistrjutīgs.
PHP ir neatkarīgs no platformas.
“PHP” teksta faila otrajā rindā ir divas reizes, input.txt . Šajā piemērā tiek izmantotas divas komandas 'sed', lai noņemtu tās rindas, kurās ir raksts ' php ' divas reizes. Pirmā komanda 'sed' aizstās otro 'php' parādīšanos katrā rindā ar ' dl 'Un nosūtiet izvadi otrajā komandā' sed 'kā ievadi. Otrā komanda 'sed' izdzēsīs tās rindas, kurās ir teksts, ' dl '.
$kaķisinput.txt$sed 's/php/dl/i2; t'input.txt| sed '/dl/d'
Izeja:
input.txt failā ir divas rindas, kurās ir raksts, 'Php' divas reizes. Tātad, pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
16. Izdzēsiet visas līnijas, kurās ir tikai atstarpe
Lai pārbaudītu šo piemēru, atlasiet jebkuru failu, kura saturā ir tukšas rindas. input.txt failā, kas izveidots iepriekšējā piemērā, ir divas tukšas rindas, kuras var izdzēst, izmantojot šādu komandu `sed`. Šeit “^$” tiek izmantots, lai noskaidrotu tukšās rindas failā, input.txt.
$kaķisinput.txt$sed '/^$/d'input.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
17. Izdzēsiet visas nedrukājamās rakstzīmes
Neizdrukājamas rakstzīmes var izdzēst no jebkura teksta, aizstājot neizdrukājamas rakstzīmes ar nevienu. Šajā piemērā tiek izmantota klase [: print:], lai noskaidrotu nedrukājamās rakstzīmes. “ T” ir nedrukājams raksturs, un to nevar parsēt tieši ar komandu “echo”. Šim nolūkam rakstzīme “ t” tiek piešķirta mainīgajā cilnē $, kas tiek izmantota komandā “echo”. Komandas 'echo' izvade tiek nosūtīta komandā 'sed', kas no izvades noņems rakstzīmi ' t'.
$cilni= $' t'$izmest ārā 'Sveiki$ tabWorld'
$izmest ārā 'Sveiki$ tabWorld' | sed 's/[^[: print:]] // g'
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Pirmā komanda 'echo' izdrukās izvadi ar cilnes atstarpi, un komanda 'sed' izdrukās izvadi pēc cilnes atstarpes noņemšanas.
18. Ja rindā ir sakritība, pievienojiet kaut ko rindas beigām
Šī komanda pievienos “10” rindas beigās, kurā ir teksts “Windows” os.txt failu.
$kaķisos.txt$sed ' / Windows / s / $ / 10 /'os.txt
Izeja:
Pēc komandas palaišanas parādīsies šāda izvade.
19. Ja rindā ir sakritība, pirms teksta ievietojiet rindiņu
Šī komanda 'sed' meklēs tekstu ' PHP nav neatkarīgs no platformas ” iekš input.txt fails, kas izveidots iepriekš. Ja fails satur šo tekstu jebkurā rindiņā, tad “ PHP ir interpretēta valoda ” tiks ievietots pirms šīs rindas.
$kaķisinput.txt$sed '/PHP ir neatkarīga no platformas/s/^/PHP ir interpretēta valoda. N/'input.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
20. Ja līnijā ir sakritība, ievietojiet rindu aiz šīs līnijas
Šī komanda 'sed' meklēs tekstu ' Linux ” failā os.txt un, ja teksts pastāv jebkurā rindiņā, tad jauns teksts, “ Ubuntu 'Tiks ievietots aiz šīs rindas.
$kaķisos.txt$sed 's/Linux/& nUbuntu/'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
21. Ja nav spēles, pievienojiet kaut ko rindas beigās
Šī komanda 'sed' meklēs šīs rindas os.txt kurā nav teksta, 'Linux' un pievienojiet tekstu: ' Operētājsistēma 'Katras rindas beigās. Šeit, ' $ “Simbolu izmanto, lai identificētu rindu, kur tiks pievienots jaunais teksts.
$kaķisos.txt$sed '/Linux/! S/$/Operētājsistēma/'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Failā os.txt ir trīs rindas, kurās nav teksta, “Linux” un jauno tekstu, kas pievienots šo rindu beigās.
22. Ja nav atbilstības, izdzēsiet rindu
Izveidojiet failu ar nosaukumu web.txt un pievienojiet šādu saturu un izdzēsiet rindas, kurās nav atbilstoša raksta. web.txt HTML 5JavaScriptCSSPHPMySQLJQuery Šī komanda 'sed' meklēs un dzēsīs tās rindas, kurās nav teksta 'CSS'. $ cat web.txt $ sed ‘/CSS/! d’ web.txt Izeja: Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Failā, kurā ir teksts, ir viena rinda “CSE”. Tātad izvadā ir tikai viena rinda.
23. Dublēt atbilstošu tekstu pēc atstarpes pievienošanas aiz teksta
Šī komanda 'sed' failā meklēs vārdu 'līdz', python.txt un, ja vārds pastāv, tas pats vārds tiks ievietots aiz meklēšanas vārda, pievienojot atstarpi. Šeit, '&' simbolu izmanto, lai pievienotu teksta dublikātu.
$kaķispython.txt$sed -Un 's / to / & to / g'python.txt
Izeja:
Pēc komandu palaišanas parādīsies šāda izvade. Šeit failā tiek meklēts vārds “līdz”, python.txt un šis vārds pastāv šī faila otrajā rindā. Tātad, ‘Uz 'Ar atstarpi tiek pievienots pēc atbilstošā teksta.
24. Aizstājiet vienu virkņu sarakstu ar jauno virkni
Lai pārbaudītu šo piemēru, jums ir jāizveido divi saraksta faili. Izveidojiet teksta failu ar nosaukumu saraksts1.txt un pievienojiet šādu saturu.
kaķu saraksts1.txt
1001=>Džafars Ali1023=>Nir Hossain
1067=>Džons Miķelis
Izveidojiet teksta failu ar nosaukumu saraksts2.txt un pievienojiet šādu saturu.
$ cat list2.txt
1001CSE GPA3.631002CSE GPA3.24
1023CSE GPA3.11
1067CSE GPA3.84
Šī komanda 'sed' atbilst divu iepriekš redzamo teksta failu pirmajai kolonnai un aizstāj atbilstošo tekstu ar faila trešās kolonnas vērtību saraksts1.txt.
$kaķissaraksts1.txt$kaķissaraksts2.txt
$sed ``kaķissaraksts1.txt| awk '{print' -e s / '$ 1' / '$ 3' / '}'``<<<'`kaķu saraksts2.txt`'
Izeja:
1001, 1023 un 1067 no saraksts1.txt faila atbilstība trim datiem saraksts2.txt failu, un šīs vērtības tiek aizstātas ar atbilstošajiem nosaukumiem trešajā slejā saraksts1.txt .
25. Aizstājiet saskaņoto virkni ar virkni, kurā ir jaunas rindas
Šī komanda ievadīs komandu 'echo' un meklēs vārdu, 'Python' tekstā. Ja vārds tekstā ir, tad jauns teksts, “Pievienots teksts” tiks ievietots ar jaunu rindu. $ echo Bash Perl Python Java PHP ASP | sed 's/Python/Pievienots teksts n/' Izeja: Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
26. Izņemiet no faila jaunas rindas un ievietojiet komatu katras rindas beigās
Šī komanda 'sed' aizstās katru jauno rindiņu ar komatu failā os.txt . Šeit, -Ar opciju izmanto, lai rindu atdalītu ar NULL rakstzīmi.
$sed -Ar 's/ n/,/g'os.txtIzeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
27. Noņemiet komatus un pievienojiet jaunu rindiņu, lai sadalītu tekstu vairākās rindās
Tālāk norādītā komanda 'sed' ņems ar komatu atdalītu rindu no komandas 'echo' kā ievadi un aizstās komatu ar jaunu rindu.
$izmest ārā 'Kaniz Fatema, 30., partija' | sed s/,/ n/g 'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Ievades tekstā ir trīs ar komatiem atdalīti dati, kurus aizstāj ar jaunu rindu un izdrukā trīs rindās.
28. Atrodiet burtu nejutīgo atbilstību un dzēsiet rindiņu
“I” tiek lietots komandā “sed” lielo un mazo burtu nejutīgajai atbilstībai, kas norāda uz lielo burtu ignorēšanu. Šī komanda 'sed' meklēs rindu, kurā ir vārds, 'Linux 'Un izdzēsiet rindu no os.txt failu.
$kaķisos.txt$sed '/linux/Id'os.txt
Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. os.txt satur vārdu “Linux”, kas atbilst modelim, “linux”, lai meklētu reģistrus un neņem vērā reģistrus.
29. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar jaunu tekstu
Šī komanda 'sed' ņems ievadi no komandas 'echo' un aizstās vārdu 'bash' ar vārdu 'PHP'.
$izmest ārā 'Man patīk bash programmēšana' | sed 's/Bash/PHP/i'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit vārds “Bash” saskanēja ar vārdu, “bash”, lai meklētu mazos un mazos burtus, un to aizstāja ar vārdu “PHP”.
30. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem viena un tā paša teksta lielajiem burtiem
“ U” tiek lietots 'sed', lai jebkuru tekstu pārvērstu par visiem lielajiem burtiem. Šī komanda 'sed' meklēs vārdu, 'Linux ' iekš os.txt failu un, ja vārds pastāv, tas aizstās vārdu ar visiem lielajiem burtiem.
$kaķisos.txt$sed 's / (linux ) / U 1 / Ig'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Vārds “Linux” os.txt failā tiek aizstāts ar vārdu “LINUX”.
31. Atrodiet burtu nejutīgo atbilstību un aizstājiet ar visiem tā paša teksta mazajiem burtiem
' THE' tiek lietots 'sed', lai pārvērstu jebkuru tekstu par visiem mazajiem burtiem. Šī komanda 'sed' meklēs vārdu, 'Linux' iekš os.txt failu un aizstājiet vārdu ar visiem mazajiem burtiem.
$kaķisos.txt$sed 's / (linux ) / L 1 / Ig'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Vārdu “Linux” šeit aizstāj ar vārdu “linux”.
32. Aizstājiet visas teksta lielās rakstzīmes ar mazajiem burtiem
Šī komanda 'sed' meklēs visas lielās rakstzīmes os.txt failu un aizstājiet rakstzīmes ar mazajiem burtiem, izmantojot “ L”.
$kaķisos.txt$sed 's/ (.*)/ L 1/'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
33. Meklējiet skaitli rindā un pievienojiet jebkuru valūtas simbolu pirms numurs
Izveidojiet failu ar nosaukumu items.txt ar šādu saturu.
items.txt
Cietais disks 10080. monitors
Pele 10
Šī komanda 'sed' meklēs numuru katrā rindā items.txt failu un pirms katra skaitļa pievienojiet valūtas simbolu “$”.
$kaķisitems.txt$sed 's / ([0-9] ) / $ 1 / g'items.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Šeit pirms katras rindas numura tiek pievienots simbols “$”.
34. Pievienojiet komatus skaitļiem, kuros ir vairāk nekā 3 cipari
Šī komanda 'sed' ņems skaitli kā ievadi no komandas 'echo' un pievienos komatu pēc katras trīs ciparu grupas, skaitot no labās puses. Šeit “: a” norāda etiķeti, un “ta” tiek izmantots grupēšanas procesa atkārtošanai.
$izmest ārā “5098673” | sed -Un: uz-Un 's / (. * [0-9] ) ([0-9] {3 } ) / 1, 2 /; ta'Izeja:
Skaitlis 5098673 ir norādīts komandā 'echo', un komanda 'sed' ģenerēja skaitli 5 098 673, pēc katras trīs ciparu grupas pievienojot komatu.
35. Aizvieto cilnes rakstzīmi ar 4 atstarpēm
Šī komanda 'sed' aizstās katru cilnes ( t) rakstzīmi ar četrām atstarpes rakstzīmēm. '$' Simbols tiek izmantots komandā 'sed', lai atbilstu cilnes rakstzīmei, un 'g' tiek izmantots, lai aizstātu visas cilnes rakstzīmes.
$izmest ārā -Un “1 t2 t3 ' | sed$'s/ t//g'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
36. Aizstāj 4 secīgas atstarpes rakstzīmes ar tabulēšanas rakstzīmi
Šī komanda aizstās 4 secīgas rakstzīmes ar cilnes ( t) rakstzīmi.
$izmest ārā -Un '1 2' | sed$'s// t/g'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
37. Nogrieziet visas rindas līdz pirmajām 80 rakstzīmēm
Izveidojiet teksta failu ar nosaukumu in.txt kas satur rindas vairāk nekā 80 rakstzīmes, lai pārbaudītu šo piemēru.
in.txt
PHP ir servera puses skriptu valoda.
PHP ir atvērtā pirmkoda valoda, un PHP ir reģistrjutīgs. PHP ir neatkarīgs no platformas.
Šī komanda 'sed' saīsinās katru rindu in.txt failu 80 rakstzīmēs.
$sed 's/ (^. {1,80 } ).*/ 1/'in.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. In.txt faila otrā rinda satur vairāk nekā 80 rakstzīmes, un šī rinda ir saīsināta izvadē.
38. Meklējiet virknes regulāro tekstu un pievienojiet tam standarta tekstu
Šī komanda 'sed' meklēs tekstu ' Sveiki 'Ievades tekstā un pievienojiet tekstu,' Džons 'Pēc šī teksta.
$izmest ārā 'Sveiks kā tev iet?' | sed 's/ (sveiki )/ 1 Jānis/'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
39. Meklējiet virknes regulāro izteiksmi un pievienojiet tekstu pēc otrās atbilstības katrā rindā
Šī komanda 'sed' meklēs tekstu ' PHP 'Katrā rindā input.txt un aizstājiet otro atbilstību katrā rindā ar tekstu, “Pievienots jauns teksts” .
$kaķisinput.txt$sed 's/ (PHP )/ 1 (pievienots jauns teksts)/2'input.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Meklēšanas teksts ' PHP ”Divas reizes parādās otrā un trešā rindā input.txt failu. Tātad teksts ' Pievienots jauns teksts ”Ir ievietota otrajā un trešajā rindā.
40. Vairāku rindu `sed` skriptu palaišana no faila
Failā var saglabāt vairākus 'sed' skriptus, un visus skriptus var izpildīt kopā, izpildot komandu 'sed'. Izveidojiet failu ar nosaukumu ‘Sedcmd 'Un pievienojiet šādu saturu. Šeit failā tiek pievienoti divi 'sed' skripti. Tekstu aizstās viens skripts: ' PHP ‘Līdz “ASP Tekstu aizstās cits skripts, neatkarīgs 'Pēc teksta', atkarīgs '.
sedcmd
s/PHP/ASP/s/neatkarīgs/atkarīgs/
Šī komanda 'sed' aizstās visu 'PHP' un 'neatkarīgo' tekstu ar 'ASP' un 'atkarīgo'. Šeit komanda 'sed' tiek izmantota opcija '-f', lai no faila izpildītu skriptu 'sed'.
$kaķissedcmd$sed -fsedcmd input.txt
Izeja:
Pēc virs komandu izpildes parādīsies šāda izvade.
41. Saskaņojiet daudzrindu rakstu un aizstājiet ar jaunu daudzrindu tekstu
Šī komanda 'sed' meklēs vairāku rindu tekstu, “Linux nAndroid” un, ja modelis sakrīt, atbilstošās rindas tiks aizstātas ar daudzrindu tekstu, “Ubuntu nAndroid Lollipop ‘. Šeit P un D tiek izmantoti daudzrindu apstrādei.
$kaķisos.txt$sed '$! N; s/Linux nAndoid/Ubuntu nAndoid Lollipop/; P; D'os.txt
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
42. Aizstājiet divu vārdu secību tekstā, kas atbilst paraugam
Šī komanda 'sed' ņems divu vārdu ievadi no komandas 'echo' un aizstās šo vārdu secību.
$izmest ārā 'perl python' | sed -Un 's/ ([^]*)* ([^]*)/ 2 1/'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
43. Izpildiet vairākas `sed` komandas no komandrindas
“-E” opcija tiek izmantota komandā “sed”, lai no komandrindas palaistu vairākus “sed” skriptus. Šī komanda 'sed' uzņems tekstu kā ievadi no komandas 'echo' un aizstās ' Ubuntu 'Ar' Kubuntu ' un ' simtiem 'Ar' Fedora '.
$izmest ārā 'Ubuntu Centos Debian' | sed -Un 's/Ubuntu/Kubuntu/; s/Centos/Fedora/'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Šeit “Ubuntu” un “Centos” tiek aizstāti ar “Kubuntu” un “Fedora”.
44. Apvienojiet `sed` ar citām komandām
Šī komanda apvienos komandu 'sed' ar komandu 'cat'. Pirmā komanda 'sed' tiks ievadīta no os.txt failu un nosūtiet komandas izvadi otrajai komandai 'sed' pēc teksta 'Linux' aizstāšanas ar 'Fedora'. Otrā komanda 'sed' aizstās tekstu 'Windows' ar 'Windows 10'.
$kaķisos.txt| sed 's/Linux/Fedora/'| sed 's / windows / Windows 10 / i'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
45. Ievietojiet failā tukšu rindu
Izveidojiet failu ar nosaukumu stdlist ar šādu saturu.
stdlist
#ID #Vārds[101] -Bet
[102] -Neha
Opciju “G” izmanto, lai failā ievietotu tukšu rindu. Šī komanda 'sed' pēc katras rindas ievietos tukšas rindas stdlist failu.
$kaķisstdlist$sedG stdlist
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade. Pēc katras faila rindas tiek ievietota tukša rinda.
46. Aizstājiet visas burtciparu rakstzīmes ar atstarpi katrā faila rindā.
Šī komanda aizstās visas burtciparu rakstzīmes ar atstarpi stdlist failu.
$kaķisstdlist$ bet 's / [A-Za-z0-9] // g'stdlist
Izeja:
Pēc iepriekš minēto komandu palaišanas parādīsies šāda izvade.
47. Izmantojiet “&”, lai izdrukātu atbilstošu virkni
Šī komanda meklēs vārdu, kas sākas ar “L”, un aizstās tekstu ar pievienošanu “Atbilstošā virkne ir - “Ar atbilstošo vārdu, izmantojot simbolu“ & ””. Šeit “p” tiek izmantots, lai drukātu modificēto tekstu.
$sed -n 's/^L/Atbilstošā virkne ir - &/p'os.txtIzeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade.
48. Pārslēgt vārdu pāri failā
Izveidojiet teksta failu ar nosaukumu course.txt ar šādu saturu, kas satur vārdu pāri katrā rindā.
course.txt
PHP ASPMySQL Oracle
CodeIgniter Laravel
Šī komanda mainīs vārdu pāri katrā faila rindā, course.txt .
$sed 's/ ([^]*)* ([^]*)/ 2 1/'course.txtIzeja:
Pēc vārdu pāra pārslēgšanas katrā rindā parādīsies šāda izvade.
49. Ar lielo burtu lieto katra vārda pirmo rakstzīmi
Šī komanda 'sed' ņems ievades tekstu no komandas 'echo' un katra vārda pirmo rakstzīmi pārvērtīs par lielo burtu.
$izmest ārā 'Man patīk bash programmēšana' | sed 's / ([a-z] ) [[a-zA-Z0-9] * ) / u 1 2 / g'Izeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Ievades teksts, man patīk bash programmēšana, tiek iespiests kā I Like Bash Programming pēc pirmā vārda lielo burtu izmantošanas.
50. Drukājiet faila rindu numurus
Simbols '=' tiek izmantots komandai 'sed', lai izdrukātu rindas numuru pirms katras faila rindas. Šī komanda drukās saturu os.txt fails ar rindas numuru.
$sed '='os.txtIzeja:
Pēc iepriekš minētās komandas palaišanas parādīsies šāda izvade. Tajā ir četras rindas os.txt failu. Tātad rindas numurs tiek izdrukāts pirms katras faila rindas.
Secinājums:
Šajā apmācībā ir izskaidroti dažādi komandas 'sed' lietojumi, izmantojot ļoti vienkāršus piemērus. Visu šeit minēto 'sed' skriptu izvade tiek ģenerēta īslaicīgi, un sākotnējā faila saturs palika nemainīgs. Bet, ja vēlaties, varat modificēt sākotnējo failu, izmantojot komandu-sed vai –i in-place. Ja esat jauns Linux lietotājs un vēlaties apgūt komandas 'sed' pamata lietojumus, lai veiktu dažāda veida virkņu manipulācijas uzdevumus, tad šī apmācība jums palīdzēs. Pēc šīs apmācības lasīšanas ceru, ka jebkurš lietotājs iegūs skaidru priekšstatu par komandas `sed` funkcijām.
bieži uzdotie jautājumi
Kādam nolūkam tiek izmantota komanda sed?
Komandai sed ir vairāki dažādi lietojumi. Tomēr galvenais lietojums ir vārdu aizstāšana failā vai atrašana un aizstāšana.
Lieliskais ar sed ir tas, ka jūs varat meklēt vārdu failā un aizstāt to, bet jums nekad nav pat jāatver fails - sed vienkārši dara visu jūsu vietā!
Turklāt to var izmantot dzēšanai. Viss, kas jums jādara, ir ierakstīt sed, kuru vēlaties atrast, aizstāt vai dzēst, un tas to parādīs jums - pēc tam varat izvēlēties aizstāt šo vārdu vai izdzēst visas vārda pēdas no sava faila.
sed ir fantastisks rīks, lai varētu aizstāt tādas lietas kā IP adreses un visu, kas ir ļoti jutīgs un ko citādi nevēlaties ievietot failā. sed ir jāzina jebkuram programmatūras inženierim!
Kas ir S un G komandā sed?
Vienkāršāk izsakoties, S funkcija, ko var izmantot sed, vienkārši nozīmē “aizstājējs”. Pēc S ievadīšanas jūs varat aizstāt vai aizstāt visu, ko vēlaties - vienkārši ierakstot S, tiks aizstāts tikai pirmais vārda gadījums rindā.
Tāpēc, ja jums ir teikums vai rindiņa, kurā tas minēts vairāk nekā vienu reizi, funkcija S nav ideāla, jo tā aizstās tikai pirmo gadījumu. Varat norādīt modeli, lai S ik pēc diviem gadījumiem aizstātu vārdus.
Norādot G komandas sed beigās, tiks veikta globāla nomaiņa (tas nozīmē G). Paturot to prātā, ja norādīsit G, tas aizstās katru jūsu izvēlētā vārda sastopamību, nevis tikai pirmo S gadījumu.
Kā palaist sed skriptu?
Sed skriptu var palaist vairākos veidos, bet visbiežāk tas ir komandrindā. Šeit jūs varat vienkārši norādīt sed un failu, kurā vēlaties izmantot komandu.
Tas ļauj šajā failā izmantot sed, ļaujot pēc vajadzības atrast, dzēst un aizstāt.
Varat to izmantot arī čaulas skriptā, un šādā veidā jūs varat nodot skriptam visu, ko vēlaties, un tas izpildīs komandu atrast un aizstāt. Tas ir noderīgi, ja nevēlaties skriptā norādīt ļoti jutīgus datus, tāpēc varat tos nodot kā mainīgo
Paturiet prātā, ka tas, protams, ir pieejams tikai operētājsistēmā Linux, un tāpēc jums būs jāpārliecinās, ka jums ir Linux komandrinda, lai palaistu savu sed skriptu.