Aizvietošanas uzdevumus Linux var veikt dažādos veidos. 'sed' komanda ir viens no veidiem, kā veikt nomaiņas uzdevumu. Šo komandu var izmantot, lai aizstātu tekstu virknē vai failā, izmantojot citu modeli. Šajā apmācībā ir parādīts, kā visu var aizstāt pēc atbilstības modeļa, izmantojot komandu “sed”.
Aizstājiet visu pēc spēles virknē:
Kā šīs apmācības sadaļā ir parādīts, kā virknes daļu var aizstāt, pamatojoties uz atbilstošo modeli un $ PARTITION_COLUMN. Bet šis mainīgais darbojas, ja modelis sakrīt ar jebkuru vārdu virknes sākumā vai vidū. Tas neaizstās tekstu, ja modelis sakrīt ar virknes pēdējo vārdu.
1. piemērs: aizvietojiet visus pēc spēles, izmantojot $ PARTITION_COLUMN
Šī komanda meklēs rakstzīmi “a”, un atlikusī daļa pēc “a” tiks aizstāta ar tekstu “populāra emuāra vietne”. $ PARTITION_COLUMN.* tiek izmantots, lai noteiktu atlikušo daļu pēc rakstzīmes "a".
$ echo "LinuxHint ir vietne" | sed "s / a $ PARTITION_COLUMN.* / populāra emuāra vietne / "Pēc komandas palaišanas parādīsies šāda izeja. Šeit “vietne” ir aizstāta ar “populāra emuāru vietne”.
Šis modelis meklēs vārdu “tīmeklī"Virknē un aizstājiet atlikušo daļu ar"tīmeklī"Pēc teksta"populāra emuāru vietne"ja sakritība pastāv un"tīmeklī'Nav virknes pēdējā vārda daļa.
Pēc komandas palaišanas parādīsies šāda izeja. Šeit “vietne” ir virknes pēdējais vārds, un šī iemesla dēļ netika veikts neviens aizstājējs.
2. piemērs: aizvietojiet visus pēc spēles, izmantojot modeli
Šī komanda meklēs vārdu “bash'globāli virknē un aizstājiet visu ar vārdu, ja vārds pastāv virknē. "g'Šeit tiek izmantots globālai meklēšanai.
$ echo "Man patīk bash programmēšana" | sed "s / bash.* / python skripts / g "Pēc komandas palaišanas parādīsies šāda izeja. Virknes vidū pastāv “bash”, un nomaiņa ir izdarīta.
Aizvietojiet visu pēc spēles failā:
Visu konkrētas rindas saturu vai vairākas rindas vai faila atlikušās rindas pēc spēles var aizstāt, izmantojot 'sed'komandu. Izveidojiet teksta failu ar nosaukumu apmeklējums.txt ar šādu saturu, lai pārbaudītu šajā sadaļā parādītos piemērus.
apmeklējums.txt
1108885 ir klāt1999979 ir klāt
1769994 nav
1105656 nav
1455999 nav
-3. Piemērs: Pēc spēles nomainiet visu faila rindas saturu
Sekojošā komanda “sed” meklēs failā numuru 1769994, un viss ar numuru tiks aizstāts ar tekstu: “1586844 ir klāt”, ja numurs ir kādā faila rindā.
$ kaķu alendence.txt$ sed "s / 1769994.* / 1586844 ir klāt / "apmeklē.txt
Parādīsies šāda izeja, kurā darbojas komandas. Šeit meklēšanas numurs atrodas faila trešajā rindā, un nomaiņa ir izdarīta.
-4. Piemērs: aizvietojiet visu saturu no faila vairākām rindām pēc spēles
Šī komanda “sed” parāda mainīgā $ PARTITION_COLUMN izmantošanu, lai aizstātu vairākas faila rindas. Komanda katras faila rindas sākumā meklēs “110” un visu aizstās ar “110” ar tekstu “Nederīgs ieraksts”, kur tiks atrasts atbilstošais teksts.
$ kaķu apmeklējums.txt$ sed "s / ^ 110.* $ PARTITION_COLUMN.* / Nederīgs ieraksts / apmeklējums.txt
Pēc komandu palaišanas parādīsies šāda izeja. “110” ir divās faila rindiņās, un tās ir aizstātas ar aizstājošo tekstu.
5. piemērs: Pēc spēles aizstājiet visu faila rindas saturu, izmantojot “c”
Sekojošais 'sed'komanda parāda'c'pēc mača visu aizstāt. Šeit, 'c'norāda izmaiņas. Komanda meklēs vārdu “klāt"failā un visu rindas daļu aizstāj ar tekstu"Šī rinda ir aizstāta', ja vārds atrodas kādā faila rindā.
$ kaķu apmeklējums.txt$ sed '/ klāt / c Šī rindiņa tiek aizstāta ar' apmeklējums.txt
Pēc komandu palaišanas parādīsies šāda izeja. Vārds “klāt” atrodas faila pirmajās divās rindās, un šīs divas rindas ir aizstātas ar aizstājošo tekstu.
6. piemērs: aizstājiet visu faila rindas saturu, pamatojoties uz sākuma un beigu modeli
Dažreiz ir jāaizstāj teksts, pamatojoties uz sākuma un beigu modeli. Šī komanda “sed” parāda veidu, kā definēt sākuma un beigu modeļus, lai aizstātu faila rindas. Komanda meklēs failā tās rindas, kas sākas ar skaitli 110 un beidzas ar vārdu “nav”, un aizstās visu ar vārdu “aizstāts”, kur atbilst modeļi.
$ kaķu apmeklējums.txt$ sed-e / s 110.* nav $ / aizstāts / g 'apmeklējums.txt
Pēc komandu palaišanas parādīsies šāda izeja. Šeit pirmā un ceturtā rinda sākas ar skaitli 110, bet vārds “nav” pastāv tikai ceturtajā rindā. Tātad faila ceturtā rinda ir aizstāta ar aizstājošo tekstu.
Secinājums:
'sed' komanda ir ļoti spēcīgs Linux rīks dažāda veida ar tekstu apstrādei saistītu uzdevumu veikšanai. Aizvietošanas uzdevums, kas balstīts uz saskaņošanas modeli, ir apspriests šajā apmācībā, izmantojot dažāda veida modeļus komandā “sed”. $ PARTITION_COLUMN, 'c' un '.* 'šajā apmācībā tiek izmantots, lai aizstātu visu faila rindu, kur pastāv atbilstības modelis. Šeit ir parādīti dažu rakstzīmju, kas nosaka modeļus, piemēram, '^' un '$', izmantošana. Lai definētu modeli regulārajā izteiksmē meklēšanas nolūkos, pastāv daudzas citas rakstzīmes. Es ceru, ka šī apmācība palīdzēs lasītājam uzzināt pamatus, kā pēc spēles visu aizstāt no faila.