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.