sed

Kā visu aizstāt pēc raksta, izmantojot komandu sed

Kā visu aizstāt pēc raksta, izmantojot komandu sed

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.

$ echo "LinuxHint ir vietne" | sed "s / tīmeklis.* $ PARTITION_COLUMN.* / populāra emuāra vietne / "

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āt
1999979 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.

Cīņa par Vesnotu 1.13.6 Izlaista attīstība
Cīņa par Vesnotu 1.13.6 izlaists pagājušajā mēnesī, ir sestais izstrādes izlaidums 1.13.x sērija un tā nodrošina vairākus uzlabojumus, īpaši lietotāja...
Kā instalēt League of Legends operētājsistēmā Ubuntu 14.04
Ja jūs esat League of Legends fans, tad šī ir iespēja jums izmēģināt League of Legends. Ņemiet vērā, ka LOL tiek atbalstīts PlayOnLinux, ja esat Linux...
Instalējiet jaunāko OpenRA stratēģijas spēli Ubuntu Linux
OpenRA ir bezmaksas / bezmaksas reāllaika stratēģijas spēļu dzinējs, kas atjauno agrīnās Vestvudas spēles, piemēram, klasisko Command & Conquer: Red A...