sed

sed Komandā virknes nomaiņa failā

sed Komandā virknes nomaiņa failā
Ikreiz, kad mēs strādājam ar jebkura veida failiem, ir ļoti izplatīta prakse modificēt šos failus, atrodot un aizstājot vārdus. Lielākā daļa teksta redaktoru nodrošina dažādas GUI balstītas metodes, lai veiktu šīs modifikācijas. Tomēr dažreiz jums ir nepieciešams veids, kā atrast un aizstāt vārdus failā, izmantojot termināli. Tāpēc šajā rakstā mēs iepazīsimies ar metodi sed, kā aizstāt virkni teksta failā. Mēs arī pievērsīsim uzmanību dažādiem scenārijiem, kuros var izmantot šo komandu.

Piezīme: Mēs izmantosim Linux Mint 20, lai parādītu komandas sed izmantošanu, lai aizstātu virkni failā. Ja vēlaties, varat izmantot arī jebkuru citu Linux garšu.

Sed komandas izmantošana:

Tagad mēs parādīsim dažus ļoti interesantus piemērus, kā attēlot sed komandas izmantošanu Linux. Apskatīsim, kā šī komanda darbojas dažādos scenārijos.

Teksta faila izveide demonstrēšanai:

Lai parādītu sed komandas izmantošanu, mēs vēlētos strādāt ar teksta failu. Tomēr jūs pat varat izveidot Bash failu vai jebkuru citu failu pēc savas izvēles. Otrkārt, mēs izveidosim failu mājas direktorijā, lai piekļūstot šim failam nebūtu jānorāda sarežģīti ceļi. Lai izveidotu teksta failu, jāveic šādas darbības:

Noklikšķiniet uz ikonas Failu pārvaldnieks, kas atrodas jūsu Linux Mint 20 uzdevumjoslā:

Tagad izveidojiet jaunu teksta failu mājas direktorijā, ar peles labo pogu noklikšķinot jebkurā vietā un pēc tam kaskādes izvēlnē izvēloties opciju Jauns dokuments un apakškaskādes izvēlnes opciju Iztukšot dokumentu. Kad teksta fails ir izveidots, piešķiriet tam piemērotu nosaukumu. Šajā konkrētajā piemērā es to nosaucu par sed.txt.

Veiciet dubultklikšķi uz šī faila, lai to atvērtu, un ierakstiet tajā jebkuru nejaušu tekstu, kā parādīts zemāk esošajā attēlā. Saglabājiet šo teksta failu, nospiežot Ctrl + S, un pēc tam aizveriet to.

Tagad palaidiet termināli Linux Mint 20, kā parādīts šajā attēlā:

Pēc termināla palaišanas operētājsistēmā Linux Mint 20 jūs pēc kārtas varat apskatīt visus tālāk minētos piemērus.

Komandas sed izmantošana, lai aizstātu visus konkrētā vārda gadījumus:

Komandu sed var izmantot, lai aizstātu visus teksta failā norādītā vārda gadījumus. Šī mērķa sasniegšanas sintakse ir minēta zemāk:

$ sed 's / sed / FindWord / ReplaceWord /' fails.txt

Šeit jums ir jāaizstāj FindWord ar vārdu, kuru vēlaties aizstāt, un ReplaceWord ar vārdu, kas jāaizstāj. Turklāt jums ir jāaizstāj “fails” ar tā faila nosaukumu, kurā vēlaties veikt šos aizstājējus. Šajā scenārijā esmu aizstājis FindWord ar sed un ReplaceWord ar aizstāt. Mūsu faila nosaukums bija sed.txt. Tas ir parādīts arī šajā attēlā:

Veiksmīga šīs komandas izpilde parādīs izmaiņas, kas radušās, palaižot šo komandu savā terminālā:

Komandas sed izmantošana, lai aizstātu dotā vārda sastopamību katrā rindā:

Iepriekš minētais scenārijs bija vienkāršākais aizstāšanas scenārijs, taču dažreiz jūs nevēlaties aizstāt visus vārda gadījumus, drīzāk vēlaties aizstāt tikai šī vārda pirmo, otro vai n-to gadījumu visās rindās. Lai to izdarītu, varat izpildīt šādu komandu:

$ sed 's / FindWord / ReplaceWord / num' fails.txt

Šeit jums ir jāaizstāj FindWord ar vārdu, kuru vēlaties aizstāt, un ReplaceWord ar vārdu, kas jāaizstāj. Turklāt jums ir jāaizstāj “fails” ar tā faila nosaukumu, kurā vēlaties veikt šos aizstājējus. Šajā scenārijā es esmu aizstājis FindWord aizstāt un ReplaceWord ar sed. Mūsu faila nosaukums bija sed.txt. Arī num norāda uz aizvietojamā vārda sastopamību vai pozīciju. Parādītajā piemērā es gribu aizstāt pirmo nomaiņas gadījumu ar sed katrā rindā, kā parādīts zemāk esošajā attēlā:

Veiksmīgi izpildot šo komandu, tiks parādītas izmaiņas, kas radušās, palaižot šo komandu savā terminālā:

Komandas sed izmantošana, lai noteiktu vārdu aizstātu noteiktā rindā:

Reizēm vēlaties aizstāt doto vārdu tikai noteiktā rindā, nevis visā dokumentā. Lai to izdarītu, šādā komandā skaidri jānorāda konkrētais rindas numurs:

$ sed 'LineNum s / FindWord / ReplaceWord /' fails.txt

Šeit jums ir jāaizstāj FindWord ar vārdu, kuru vēlaties aizstāt, un ReplaceWord ar vārdu, kas jāaizstāj. Turklāt jums ir jāaizstāj “fails” ar tā faila nosaukumu, kurā vēlaties veikt šos aizstājējus. Šajā scenārijā esmu aizstājis FindWord sed un ReplaceWord ar aizstāt. Mūsu faila nosaukums bija sed.txt. Turklāt jums jāaizstāj LineNum ar tās līnijas numuru, kurā vēlaties veikt nomaiņu. Šajā piemērā mēs vēlējāmies nomainīt sed ar faila 2. rindas numuru, kā parādīts šajā attēlā:

Veiksmīgi izpildot šo komandu, tiks parādītas izmaiņas, kas radušās, palaižot šo komandu savā terminālā. Jūs varat viegli pārbaudīt, vai minētās izmaiņas ir notikušas tikai mūsu faila 2. rindiņā, nevis visā tekstā.

Secinājums:

Ikreiz, kad jūtat nepieciešamību aizstāt jebkuru vārdu failā, pirmā lieta, kas jums jādara, ir noteikt jūsu konkrēto prasību i.e. vai vēlaties aizstāt šo konkrēto vārdu visā failā, vai vēlaties aizstāt konkrētu šī vārda sastopamību, vai arī vēlaties aizstāt šo vārdu noteiktā rindā. Kad esat identificējis konkrēto scenāriju, varat izmantot šo konkrēto metodi no šajā rakstā aplūkotajiem piemēriem.

OpenTTD vs Simutrans
Transporta simulācijas izveide var būt jautra, relaksējoša un ārkārtīgi vilinoša. Tāpēc jums jāpārliecinās, ka izmēģināt pēc iespējas vairāk spēļu, la...
OpenTTD apmācība
OpenTTD ir viena no populārākajām biznesa simulācijas spēlēm. Šajā spēlē jums ir jāizveido brīnišķīgs transporta bizness. Tomēr jūs sāksit sākumā apmē...
SuperTuxKart operētājsistēmai Linux
SuperTuxKart ir lielisks nosaukums, kas paredzēts, lai sniegtu jums Mario Kart pieredzi bez maksas jūsu Linux sistēmā. Tas ir diezgan izaicinoši un ja...