Tanuljon Linuxot

A karakterlánc cseréje a Bash-ban

A karakterlánc cseréje a Bash-ban

A Bash egy UNIX shell-kompatibilis parancsfolyamat, amelynek fő feladata a shell környezetben végrehajtott húrok manipulálása. A programozókat időnként arra hívják fel, hogy különböző fájlokon dolgozzanak. Hozzáadhatnak, törölhetnek és kicserélhetnek részeket vagy az egész fájlt, hogy illeszkedjenek munkájukhoz. Ez felhívja a tudást a string cseréjéről a bash-ban. Az adattárolás lehet ideiglenes vagy állandó, az adatok jellegétől függően. A fájl karaktersorozata elengedhetetlen a fájl tartalmának cseréjéhez.

A karakterlánc cseréje a Bash-ban

sed létfontosságú, és hasznos lehet abban, hogy egy fájl stringjeit bash szkriptekkel cserélje le. A karakterlánc-szerkesztő különböző módokon használható a bash fájl tartalmának helyettesítésére. Egy alternatív, de hangos karakterlánc-szerkesztő az awk, amelyet be lehet vonni, ha a fájl string-értékét lecseréli a bash használatával. Ez a cikk példák segítségével bemutatja, hogyan lehet a fájl tartalmát lecserélni a bash-ban. Ne feledje, hogy a regex mintákban rejlő ismeretek szintén nagy értéket képviselhetnek, ha lecseréljük a stringet a bash-ban.

Bash karakterlánc manipuláció

Kisebb vagy egyszerű cserék végrehajtása esetén a sed nem szükséges. Bash meg tudja csinálni a manipulációt.

Például:
A fosslinux pótlásakor.gif .mp4, sed nem szükséges.
A folyamat bash használatával történő végrehajtásához használja az alábbi kódolt szöveget:

# / bin / bash fájlnév = "fosslinux.gif "new_extension =" mp4 "# Csere .gif .mp4 generált_fájl_név = $ fájlnév /.gif /.$ new_extension echo létrehozott_fájl_neve

A karakterlánc cseréje sed

a sed folyamszerkesztõnek nevezhetõ. A Sed helyettesítheti a karakterláncokat a fájlokban. Nézzünk meg egy singleboardbytes nevű fájlt.txt, amely a következő információkat tartalmazza:
A Foss Linux nagyszerű tanulási oldal minden Linux felhasználó számára. Nézze meg a Foss Linux által a webhelyükön megjelent cikkeket.

Most az aktánkból ki kell cserélnünk a „webhely" val vel "weboldal”, És nevezze át a fájlt erre: fosslinux.txt.

A sed szintaxis megértése

sed -i 's / search_string / Replace_string /' fájlnév sed - a fenti szintaxis végrehajtásához használt parancs '-én'- az eredeti fájl tartalmának módosításakor használatos egy helyettesítő karakterlánc segédlettel, ha a keresési érték létezik a fájlban. "s'- ez a helyettesítő parancs'keresési_lánc'- ez az a karakterlánc értéke, amelyet az eredeti fájlban kell keresnistring_string'- ez a karakterlánc értéke a keresett érték helyettesítésére szolgál. A karakterláncnak meg kell egyeznie a 'search_string' parancs által talált karakterlánccal. "fájl név'- ez a fájlnév, amellyel a helyettesítést alkalmazzák.

Hajtsa végre a következő parancsot a terminálon:

sed 's / site / website / g' egylapos bájtok.txt> fosslinux.txt

Húrcsere sed

Megjegyzés: a fenti parancsot úgy is végrehajthatja, hogy bash szkriptként felteszi.
Csere a -én parancs

A parancs futtatása után a következő lépés a -én parancs. -én a „helyben” ábrázolása, vagyis a fájl csak lecserélésre kerül, és nem hozható létre további fájl. A fenti példánk segítségével futtassa a következő parancsot:

sed -i 's / site / website / g' egylapos bájtok.txt

Csere az -i paranccsal

Az alábbi ábrán egy felkiáltójel látható, amely a következőt mondja ki: „/ home / tuts / singleboardbytes fájl.txt megváltozott a lemezen.”Ez azt mutatja, hogy a változtatásokat sikeresen végrehajtották.

Az egylapos bájtokon végrehajtott változtatások.txt

Az alábbi ábra az a fájl, amely az előző lépésben végrehajtott módosításokat tartalmazza, mind a fájl nevében (singleboard bájtok).txt a fosslinux-hoz.txt) és a szó webhely a következőre változott: weboldal.

Végső változás a sed parancs futtatása után

Változó használata keresési értékként és helyettesítésként

Kis interpolációval a változók felhasználhatók karakterlánc-cserére. Az első sed érvnek ebben az esetben kettős idézőjeleket kell használnia egyetlen idézőjel helyett. Például a kód hasonló lesz az alábbihoz:

tuts () helyi keresés = $ 1 helyi csere = $ 2 # Ne feledje a dupla idézőjeleket sed -i "s / $ search / $ Replace / g" egylapos bájtok.txt

Változó használata keresési értékként és helyettesítésként

A sednek két íze van, nevezetesen: a FreeBSD és a Linux sed. A Linux disztribúciók a Linux sedet használják, míg az OS X felhasználók a FreeBSD sed programot. Ezek az ízek meglehetősen különböznek egymástól, és ezért nem lehet átvinni a parancsokat egyik sed ízből a másikba.

Például a fájl tartalmának a FreeBSD használatával történő cseréje közben a biztonsági másolatot a .bak kiterjesztés. Vagy kezdeményezhet biztonsági másolatot üres idézőpárok használatával közvetlenül az -i jelölés után, az alábbi bash szintaxis szerint:

tuts () helyi keresés = $ 1 helyi csere = $ 2 sed -i "" "s / $ search / $ Replace / g" egylapos bájt.txt

Ha a FreeBSD használata közben nem történik biztonsági mentés, amint az a fenti szintaxis kódban látható, akkor az alábbihoz hasonló hibába esik:

sed: 1: "/ Users / user / path / tuts…": extra karakterek a h parancs végén

Hogyan cserélje ki a fájlt és illessze a számjegy mintáját a sed paranccsal

Ha sikeresen futtatja a parancsfájlt, a fájlban található összes numerikus tartalom keresése megtörténik. Ezután a tartalom helyébe $ számot adunk a számok elé.

#!/ bin / bash # Ellenőrizze, hogy a parancssori argumentum értéke létezik-e vagy sem, ha [$ 1 != ""]; akkor # Keressen az összes számjegyet tartalmazó karakterláncban, és adja hozzá a $ sed -i 's / \ b [0-9] \ 5 \ \ b / $ & / g' $ 1 fi elemet

Karaktersorozat cseréje az awk paranccsal

Ebben az esetben az awk parancsot fogjuk használni a sed parancs helyett a fájl tartalmának kicserélésére. A parancsok közötti különbség az, hogy a sed parancs közvetlenül frissíti az eredeti fájlt, ez nem az eset az awk parancsnál.

#!/ bin / bash # Ellenőrizze, hogy a parancssori argumentum értéke létezik-e vagy sem, ha [$ 1 != ""]; akkor # Keresés az összes karakterláncban a dátum alapján awk 'sub ("2020.06.06.", "12.06.2020.") 1' $ 1> temp.txt && mv temp.txt $ 1 fi

Következtetés

A fenti példák létfontosságúak a Bash-ben lévő karakterlánc cseréjének megtanulásában. Ezért ahhoz, hogy jó legyél benne, rendszeresen kell gyakorolnod. A karakterlánc keresése és cseréje egy fájlban összetettnek tűnhet, de sokkal könnyebben kezelhetőnek találja, ha megfelelően követi az irányelveinket.

Megjegyzendő, hogy a parancsok futtatása időnként könnyebben kezelhetőnek tűnhet, de vigyázni kell, hogy ne okozzon pusztítást a. Ha rossz parancsokat ad meg, akkor megtöri a számítógépét, és így több gondot okoz, mint például az adatvesztés. Ezért a biztonság érdekében mindig másolja be és illessze be a kódot a termináljába. Ez megakadályozza a helyesírási hibákat, amelyek megrongálhatják a gépet. Reméljük, hogy ez a cikk segített megtanulni, hogyan cserélhet le egy karakterláncot a bash-ban a cikk használatával.

Az egér és az érintőpad beállításainak módosítása az Xinput használatával Linux alatt
A legtöbb Linux disztribúció alapértelmezés szerint „libinput” könyvtárral szállítja a rendszer bemeneti eseményeit. Feldolgozhatja a Wayland és az X ...
Az X-Mouse Button Control segítségével az egér gombjait másképp alakíthatja át a különböző szoftvereknél
Lehet, hogy szüksége van egy eszközre, amely megváltoztathatja az egér vezérlését minden használt alkalmazással. Ebben az esetben kipróbálhatja az úgy...
Microsoft Sculpt Touch vezeték nélküli egér áttekintés
Nemrég olvastam a Microsoft Sculpt Touch vezeték nélküli egér és úgy döntött, hogy megveszi. Egy ideig használat után úgy döntöttem, hogy megosztom ve...