sed

Sed Távolítsa el a szóközöket

Sed Távolítsa el a szóközöket
A szóközök eltávolítása a dokumentumokból alapvető formázási lépés, amely szükséges a szöveg általános elrendezésének javításához és az adatok tisztaságának és rendezettségének biztosításához. Ez csak a szükséges adatok tárolását segíti elő, és megszabadul a felesleges vezető és záró terektől. Az alábbiakban bemutatunk néhány olyan esetet, ahol előfordulhat, hogy el kell távolítania a szóközöket:

Ha vezető térközökről beszélünk, azokat viszonylag könnyű észrevenni, mint a szöveg elején. Azonban nem könnyű észrevenni a lemaradó fehér mezőket. Ugyanez a helyzet a kettős szóközökkel is, amelyeket szintén néha nehéz észrevenni. Mindez egyre nagyobb kihívást jelent, ha el kell távolítania az összes vezető és végződő szóközt egy több ezer sort tartalmazó dokumentumból.

A szóközök eltávolításához különféle eszközöket használhat, például awk, sed, cut és tr. Néhány más cikkben megvitattuk az awk használatát a szóközök eltávolításakor. Ebben a cikkben megvitatjuk a sed használatát a szóközök eltávolításához az adatokból.

Megtanulja, hogyan kell használni a sedet:

Futtatjuk a parancsokat az Ubuntu 20-on.04 Focal Fossa. Ugyanezeket a parancsokat futtathatja más Linux disztribúciókon is. A parancsok futtatásához az alapértelmezett Ubuntu Terminal alkalmazást fogjuk használni. A terminál megnyitásához használja a Ctrl + Alt + T billentyűparancsot.

Mi az a Sed

A Sed (a stream szerkesztő rövidítése) egy nagyon hatékony és praktikus segédprogram a Linuxban, amely lehetővé teszi számunkra, hogy alapvető szövegmanipulációkat hajtsunk végre a bemeneti folyamokon. Ez nem szövegszerkesztő, de segít a szöveg manipulálásában és szűrésében. Fogadja a bemeneti folyamokat és a felhasználói utasításoknak megfelelően szerkeszti, majd kinyomtatja az átalakított szöveget a képernyőre.

A sed segítségével:

A Sed használata a szóközök eltávolításához

A következő szintaxist fogjuk használni a szóközök eltávolításához a szövegből:

s / REGEXP / csere / zászlók

Hol

Reguláris kifejezések

Néhány itt használt reguláris kifejezés:

Bemutató célokra a következő „testfile” nevű mintafájlt fogjuk használni.

Az összes fehér mező megtekintése egy fájlban

A fájlban található összes szóköz megtalálásához a cat parancs kimenetét a tr parancshoz így csatolja:

$ macska tesztfájl | tr "" "*" | tr "\ t" "&"

Ez a parancs a fájlban lévő összes szóközt helyettesíti (*) szimbólummal, ami megkönnyíti az összes szóköz felismerését, legyenek azok egyszeresek, többszörösek, vezető vagy záró szóközök.

A következő képernyőképen láthatja, hogy a szóközöket * szimbólum váltja fel.

Távolítsa el az összes szóközt (beleértve a szóközöket és a füleket is)

Bizonyos esetekben el kell távolítania az összes szóközt az adatokból, azaz.e. vezetés, lemaradás és a szövegek közötti szóköz. A következő parancs eltávolítja az összes szóközt a „tesztfájlból”.

$ macska tesztfájl | sed -r 's / \ s + // g'

Jegyzet: A Sed csak akkor változtatja meg a fájljait, ha elmenti a kimenetet a fájlba.

Kimenet:

A fenti parancs futtatása után a következő kimenet jelent meg, amely azt mutatja, hogy az összes szóközt eltávolították a szövegből.

A következő paranccsal ellenőrizheti, hogy az összes szóközt eltávolították-e.

$ macska tesztfájl | sed -r 's / \ s + // g' | tr "" "*" | tr "\ t" "&"

A kimenetről láthatja, hogy ez nem (*) szimbólum, ami azt jelenti, hogy az összes szóközt eltávolították.

Az összes szóköz eltávolításához, de csak egy adott sorból (tegyük fel, hogy a 2. sor), a következő parancsot használhatja:

$ macska tesztfájl | sed -r '2s / \ s + // g'

Távolítsa el az összes vezető szóközt (beleértve a szóközöket és a füleket is)

Az összes sor elejéről az összes szóköz eltávolításához (a vezető szóközökhöz) használja a következő parancsot:

$ macska tesztfájl | sed 's / ^ [\ t] * //'

Kimenet:

A fenti kimenet a fenti parancs futtatása után jelent meg, amely azt mutatja, hogy az összes vezető szóköz el lett távolítva a szövegből.

A következő paranccsal ellenőrizheti, hogy az összes vezető szóköz el lett-e távolítva:

$ macska tesztfájl | sed 's / ^ [\ t] * //' | tr "" "*" | tr "\ t" "&"

A kimenetről láthatja, hogy a sorok elején nincs (*) szimbólum, amely igazolja, hogy az összes vezető szóköz el lett távolítva.

A vezető szóközök eltávolításához csak egy adott sorból (tegyük fel, hogy a 2. sorszám) használhatja a következő parancsot:

$ macska tesztfájl | sed '2s / ^ [\ t] * //'

Távolítsa el az összes zárójelet (beleértve a szóközöket és a füleket is)

Az egyes sorok végéből az összes szóköz eltávolításához (záró szóközök) használja a következő parancsot:

$ macska tesztfájl | sed 's / [\ t] * $ //'

Kimenet:

A fenti kimenet a fenti parancs futtatása után jelent meg, amely azt mutatja, hogy az összes záró szóközt eltávolították a szövegből.

A következő paranccsal ellenőrizheti, hogy az összes záró szóközt eltávolították-e.

$ macska tesztfájl | sed 's / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

A kimenetből láthatja, hogy a sorok végén nincs (*) szimbólum, amely igazolja, hogy az összes záró szóköz eltűnt.

A záró szóközök eltávolításához csak egy adott sorból (tegyük fel, hogy a 2. sor), használhatja a következő parancsot:

$ macska tesztfájl | sed '2s / [\ t] * $ //'

Távolítsa el a vezető és a záró szóközöket egyaránt

Az összes szóköz eltávolításához az egyes sorok elejétől és végétől (i.e. vezető és záró szóközök egyaránt), használja a következő parancsot:

$ macska tesztfájl | sed 's / ^ [\ t] * //; s / [\ t] * $ //'

Kimenet:

A fenti kimenet a fenti parancs futtatása után jelent meg, amely azt mutatja, hogy mind a vezető, mind a záró szóköz el lett távolítva a szövegből.

A következő paranccsal ellenőrizheti, hogy a vezető és a záró szóközök egyaránt eltávolításra kerültek-e.

$ macska tesztfájl | sed 's / ^ [\ t] * //; s / [\ t] * $ //' | tr "" "*" | tr "\ t" "&"

A kimenetről láthatja, hogy a sorok elején vagy végén nincs (*) szimbólum, amely igazolja, hogy az összes vezető és záró szóköz el lett távolítva.

Az elõzõ és a záró szóközöket csak egy adott sorból (mondjuk a 2. sorból) távolítsuk el, a következõ paranccsal:

$ macska tesztfájl | sed '2s / ^ [\ t] * //; 2s / [\ t] * $ //'

Cserélje le a Több szóköz szót egy üres szóközre

Bizonyos esetekben a fájl ugyanazon a helyén több szóköz van, de csak egyetlen szóközre van szükség. Ezt úgy teheti meg, hogy ezeket a több szóközt egyetlen szóközzel helyettesíti a sed használatával.

A következő parancs az összes több szóközt egyetlen szóközzel helyettesíti a „tesztfájl” minden sorából.

$ macska tesztfájl | sed 's / [] \ + / / g'

Kimenet:

A fenti kimenet a fenti parancs futtatása után jelent meg, amely azt mutatja, hogy a több szóköz helyére az egyetlen szóköz lépett.

A következő paranccsal ellenőrizheti, hogy több szóköz van-e helyettesítve egyetlen szóközzel:

$ macska tesztfájl | sed 's / [] \ + / / g' | tr "" "*" | tr "\ t" "&"

A kimenetről minden helyen láthatja az egyetlen (*) szimbólumot, amely igazolja, hogy a több szóköz összes előfordulása egyetlen szóközzel helyettesítve van.

Szóval, ez arról szólt, hogy a sed használatával eltávolítottuk a szóközöket az adatokból. Ebben a cikkben megtanulta, hogyan használhatja a sedet az összes szóköz eltávolításához az adatokból, csak az első vagy a záró szóköz eltávolításához, valamint az első és a záró szóköz eltávolításához. Megtanulta azt is, hogyan lehet több szóközt egyetlen szóközzel helyettesíteni. Most már könnyen eltávolíthatja a szóközöket egy fájlból, amely több száz vagy ezer sort tartalmaz.

Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...
HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...