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
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
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 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á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
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.