Uzziniet Linux

Stīgu nomaiņa Bash

Stīgu nomaiņa Bash

Bash ir UNIX ar čaulu saderīgs komandu process, kura galvenais uzdevums ir manipulēt ar virknēm, kas tiek veiktas čaulas vidē. Programmētāji reizēm tiek aicināti strādāt pie dažādiem failiem. Viņi var pievienot, dzēst un aizstāt daļas vai visu failu, lai tie atbilstu viņu darbam. Tas prasa zināšanas par virknes nomaiņu bash. Datu glabāšana var būt īslaicīga vai pastāvīga, atkarībā no datu veida. Failu virkne ir būtiska, aizstājot faila saturu.

Stīgu nomaiņa Bash

sed ir vitāli svarīgs un noderīgs, lai aizstātu virknes failā ar bash skriptiem. Virknes redaktoru var izmantot dažādos veidos, lai aizstātu faila saturu bash. Alternatīvs, bet skaņu virkņu redaktors ir awk, kuru var ieviest, aizstājot virknes vērtību no faila, izmantojot bash. Šis raksts ar piemēriem parādīs, kā faila saturu var aizstāt bash. Ņemiet vērā, ka zināšanas regex modeļos var būt arī ļoti vērtīgas, aizstājot virkni bash.

Bash stīgu manipulācijas

Veicot nelielas vai vienkāršas nomaiņas, sed nav nepieciešama. Bašs var veikt manipulācijas.

Piemēram:
Nomainot fosslinux.gif ar .mp4, sed nav nepieciešama.
Lai procesu izpildītu, izmantojot bash, izmantojiet zemāk esošo kodēto tekstu:

# / bin / bash faila_nosaukums = "fosslinux.gif "new_extension =" mp4 "# Aizstāt .gif ar .mp4 generated_file_name = $ faila_nosaukums /.gif /.$ new_extension atbalss ģenerētais_faila_nosaukums

Stīgu nomaiņa, izmantojot sed

sed var dēvēt par straumes redaktoru. Sed var aizstāt virkni failos. Apskatīsim faila, kura nosaukums ir singleboardbytes, piemēru.txt, kurai ir šāda informācija:
Foss Linux ir lieliska mācību vietne jebkuram Linux lietotājam. Apskatiet Foss Linux publicētos rakstus savā vietnē.

No faila mums jāaizstāj vārds “vietne”Ar“vietne”Un pārdēvējiet failu uz fosslinux.txt.

Izpratne par sed sintaksi

sed -i 's / search_string / aizstāt_string /' faila nosaukums sed - ir komanda, kas tiek izmantota iepriekšminētās sintakses izpildē '-i'- tiek izmantots sākotnējā faila satura modifikācijā ar virknes aizstājēju, kad failā ir meklēšanas vērtība. "s"- tā ir aizstājējkomanda"meklēšanas_ virkne"- tas apzīmē virknes vērtību, kas jāmeklē aizstājējam sākotnējā failā"aizstāt_stīgu'- tas apzīmē virknes vērtību, kas tiek izmantota meklētās vērtības aizstāšanai. Virknei jāatbilst virknei, kuru atrada komanda 'search_string'. "faila nosaukums"- tas ir faila nosaukums, ar kuru aizstājējs tiks lietots.

Izpildiet šo komandu savā terminālā:

sed 's / vietne / vietne / g' viena paneļa baiti.txt> fosslinux.txt

Stīgu nomaiņa, izmantojot sed

Piezīme. Jūs varat arī izpildīt iepriekš minēto komandu, ievietojot to kā bash skriptu.
Aizstāšana, izmantojot -i komandu

Pēc komandas palaišanas nākamais solis ir aizstāt, izmantojot -i komandu. -i ir attēlojums “vietā”, kas nozīmē, ka fails tiek aizstāts tikai un papildu faili netiek izveidoti. Izmantojot mūsu iepriekš minēto piemēru, palaidiet šādu komandu:

sed -i 's / vietne / vietne / g' viena paneļa baiti.txt

Aizstāšana, izmantojot komandu -i

Zemāk redzamajā attēlā var redzēt izsaukuma zīmi, kas saka: Fails “/ home / tuts / singleboardbytes.diskā mainīts txt.”Tas liecina, ka izmaiņas ir veiksmīgi veiktas.

Izmaiņas, kas veiktas vienā dēlī.txt

Zemāk redzamais attēls ir fails, kurā ir izmaiņas, kas veiktas iepriekšējā darbībā, gan faila nosaukumā (viena paneļa baiti.txt uz fosslinux.txt) un vārdu vietne ir mainīts uz vietne.

Galīgās izmaiņas pēc sed komandas izpildīšanas

Mainīgā izmantošana kā meklēšanas vērtības un aizstājēji

Ar nelielu interpolāciju mainīgos var izmantot virkņu nomaiņai. Pirmajā sed argumentā šajā gadījumā jāizmanto dubultās pēdiņas, nevis atsevišķas pēdiņas. Piemēram, jūsu kods būs līdzīgs zemāk norādītajam:

tuts () local search = $ 1 local aizstāt = $ 2 # Ievērojiet dubultās pēdiņas sed -i "s / $ search / $ aizstāt / g" vienpuse.txt

Mainīgā izmantošana kā meklēšanas vērtības un aizstājēji

sed ir divas garšas, proti: FreeBSD un Linux sed. Linux distros tiek izmantota Linux sed, savukārt OS X lietotājiem - FreeBSD sed. Šīs garšas ir diezgan atšķirīgas, un tāpēc nevar pārsūtīt komandas no viena sed aromāta uz citu.

Piemēram, aizstājot faila saturu, izmantojot FreeBSD, dublēšana jāveic, izmantojot .bak pagarinājums. Vai arī jūs varat sākt dublēšanu, izmantojot tukšus pēdiņu pārus tūlīt pēc -i apzīmējuma, kā parādīts zemāk esošajā bash sintaksē:

tuts () vietējā meklēšana = $ 1 vietējā aizstāšana = $ 2 sed -i "" "s / $ search / $ aizstāt / g" viena paneļa baiti.txt

Ja dublēšana netiek veikta, izmantojot FreeBSD, kā parādīts iepriekš sintakses kodā, jūs nokļūsit tādā kļūdā kā zemāk parādītais:

sed: 1: "/ Users / user / path / tuts…": papildu rakstzīmes komandas h beigās

Kā nomainīt failu un saskaņot ciparu modeli, izmantojot komandu sed

Ja veiksmīgi palaidīsit skriptu, tiks veikta visa failā esošā skaitliskā satura meklēšana. Tad saturs tiks aizstāts, pirms skaitļiem pievienojot $.

#!/ bin / bash # Pārbaudiet, vai ir vai nav komandrindas argumenta vērtība, ja [$ 1 != ""]; tad # meklējiet visu virkni, kurā ir cipari, un pievienojiet $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi

Virknes nomaiņa, izmantojot komandu awk

Šajā gadījumā faila satura aizstāšanai komandas sed vietā izmantosim komandu awk. Atšķirība starp šīm komandām ir tā, ka komanda sed tieši atjaunina sākotnējo failu, kas nav gadījumā ar komandu awk.

#!/ bin / bash # Pārbaudiet, vai ir vai nav komandrindas argumenta vērtība, ja [$ 1 != ""]; tad # meklējiet visu virkni, pamatojoties uz datumu awk 'sub ("02/06/2020", "12/06/2020") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Secinājums

Iepriekš minētie piemēri ir ļoti svarīgi jūsu progresam, iemācoties aizstāt virkni Bash. Tādēļ, lai tas būtu labs, jums būs regulāri jāpraktizējas. Virknes meklēšana un aizstāšana failā var šķist sarežģīta, taču, pareizi ievērojot mūsu vadlīnijas, jūs atradīsit to daudz vieglāk.

Jāatzīmē, ka komandu palaišana dažreiz var šķist vieglāk pārvaldāma, taču jums vajadzētu būt uzmanīgam, lai neizraisītu postījumus. Ievadot nepareizas komandas, jūs salauzt datoru, radot vairāk problēmu, piemēram, datu zudumu. Tādējādi, lai būtu drošībā, vienmēr nokopējiet un ielīmējiet kodu tā, kā tas ir, jūsu terminālā. Tas novērsīs pareizrakstības kļūdas, kas var salauzt jūsu mašīnu. Mēs ceram, ka šis raksts palīdzēja jums uzzināt, kā aizstāt virkni bash, izmantojot šo rakstu.

Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...
Atdariniet peles klikšķus, virzot kursoru, izmantojot operētājsistēmā Windows 10 bezklikšķu peli
Peles vai tastatūras lietošana nepareizā pozā, ja to lieto pārmērīgi daudz, var izraisīt daudz veselības problēmu, tostarp spriedzi, karpālā kanāla si...