A Linux-alapú operációs rendszerek számos parancssori szövegfeldolgozó segédprogramot kínálnak, amelyeket napi rutinjában használhat. A cut parancs az egyik ilyen szövegszerkesztő segédprogram, amely határolókat, bájtokat, mezőket és oszlopokat használ a szükséges karakterlánc lekéréséhez egy sima fájl adatbázisból vagy egy sorból.
Mivel a sima állományú adatbázisoknak nincs szerkezeti kapcsolata, és a rekordokat határolók segítségével választják el, a cut ideális eszköz karakterek vagy bájtok információ kinyerésére. Ez a cikk részletesen tárgyalja a vágás parancsot, és néhány gyakorlati példát mutat be különböző szűrőbeállításokkal az eszköz használatának megkezdéséhez.
A kivágási parancs áttekintése
A cut a következő alapvető szintaxist használja:
vágott
Más paranccsal is bevezetheti az alábbiak szerint:
echo „karakterlánc” | vágott
Kérjük, vegye figyelembe, hogy az opciók hiánya hibát generál. Íme néhány zászló, amelyeket a cut funkcióval használhat a különféle funkcióinak meghívására:
választási lehetőség | Leírás |
---|---|
-b | Bájtpozíció szerint vág |
-c | Vágás karakterpozíció szerint |
-d | Kivonja a karakterláncot a (-f) mezőbeállítással megadott határoló használatával |
-f | Kivonat egy megadott mező alapján |
-s | Kivonatok csak határolójelekhez |
--kiegészítés | Nyomtassa ki a kimenetet, kivéve a megadott mezőt |
--kimenet-határoló | Cserélje ki a meglévő határolót az Ön által megadottra |
Íme néhány példa a vágás parancsra, amely segít jobban megérteni az eszközt és funkcióit.
1. Konkrét karakterek kinyerése egy karakterláncból
Használja a -b opció a karakterláncok lekérésére azok bájtszáma alapján, az alábbiak szerint:
echo "Hello World" | vágott -b 1,2,3,5,8,9
Kimenet:
Heloor
Karakterlánc helyett megadhat egy fájl elérési utat is:
cut -b 1,2,3,4,5 fájlnév.txt
Vagy kivonhatja a karaktereket a szövegben elfoglalt helyük szerint. Használja a -c opciót követi a beolvasandó karakterek sorrendje/sorrendje az alábbiak szerint:
echo "Hello World" | vágott -c 1,2,3,5,6,8,10,11
Kimenet:
Helló öreg
Hasonlóképpen, ha mezőket vagy oszlopokat szeretne lekérni egy sima fájl adatbázisból, használja a cut parancsot a -f zászló opció:
cut -f 3 adatbázis.txt
2. Vágja le a bájtok vagy karakterek tartományát
Használhatja a -b jelölje meg a cut paranccsal több bájttartomány kibontásához és kinyomtatásához az alábbiak szerint:
cut -b 1-7,16-23 adatbázis.txt
A karakterek lekérésének tartományát a gombbal határozhatja meg -c zászlót a következőképpen:
cut -c 1-7,16-23 adatbázis.txt
3. Szöveg kinyerése a kezdő vagy záró pozícióból
Használja a -cn- opció szöveg kinyerésére az n-edik karaktertől a sor végéig, ahol n egy karakter indexe a karakterláncban.
Például a hatodik karaktertől a sor végéig tartó karakterlánc kinyeréséhez:
cut -c6- adatbázis.txt
Vagy használja a következő parancsot az elejétől az utolsóig történő letöltéshez m karakterek a fájlból:
cut -c-8 adatbázis.txt
4. Vágjon ki több mezőt egy fájlból
Több mezőt is nyomtathat egy fájlból a segítségével -f zászló.
cut -f 1,2 adatbázis.txt
Kimenet:
NÉV ÉLETKOR
János 20
Lisa 24
Jack 18
Bruce 23
Nancy 19
5. Szöveg kibontása elválasztójelek segítségével
Használhatja a -d jelölje be a határolót a -val -f választási lehetőség. A határoló a szövegfájl mezőinek elválasztására használt karaktert adja meg.
Például az első oszlop kibontásához a /etc/passwd fájl, használjon kettőspontot (:) határolóként:
cut -d ‘:’ -f 1 /etc/passwd
Hasonlóképpen, az adott szövegfolyamban a határoló értéke egyetlen szóköz:
echo "Az 1% 1%-a" | cut -d ' ' -f 2,3
Kimenet:
1%-a
6. Kimeneti határoló módosítása a kijelzőhöz
A --kimenet-határoló flag rugalmasságot ad a vágás parancs kimenetéhez. Például használhatja a zászlót, hogy a kimenetet külön sorban jelenítse meg a $'\n' (újsor) érték, az alábbiak szerint:
grep alice /etc/passwd | cut -d ':' -f 1,5,7 --output-delimiter=$'\n'
Kimenet:
alice
Alice
/bin/sh
Ezenkívül a bemeneti fájl határolóját a kimenetben a választott határolóval helyettesítheti a --kimenet-határoló zászló:
grep gyökér /etc/passwd | cut -d ':' -f 1,6,7 --output-delimiter=@
Kimenet:
root@/root@/bin/bash
nm-openvpn@/var/lib/openvpn/chroot@/usr/sbin/nologin
7. Csak akkor vágja ki a mezőket, ha egy vonal tartalmazza a határolót
Használja a -s jelölje be, hogy csak akkor bontsa ki a mezőket, ha a sorok határolót tartalmaznak. Például a következő parancs nem fogja lekérni a mezőt -f 1 hacsak nincs szóköz határoló:
echo "HelloWorld" | cut -d " " -f 1 -s
Éppen ellenkezőleg, az alább említett parancs kimenetet generál, mivel a karakterlánc tartalmazza a megadott határolót:
echo "Hello World" | cut -d " " -f 1 -s
Kimenet:
Helló
Hasonlóképpen bármilyen más karaktert is használhat elválasztóként:
echo "Hello: World" | cut -d ":" -f 2 -s
Kimenet:
Világ
8. Egészítse ki a parancskimenetet
A kivágó segédprogram lehetővé teszi az összes mező kinyomtatását is, kivéve a megadott mezőt. Használja a --kiegészítés A következő opcióval lekérheti a root felhasználói fiók összes adatát, kivéve az ötödik oszlopot:
grep "root" /etc/passwd | cut -d ':' --complement -s -f 5
Kimenet:
root: x: 0:0:/root:/bin/bash
Hasonlóképpen, az alábbi példában a -f 1 paraméternek meg kell jelennie Helló szöveg miatt azonban a --kiegészítés opciót, csak a többi részét nyomtatja ki.
echo "Üdvözlet az egész világnak" | cut -d " " -f 1 --kiegészítés
Kimenet:
az egész Világnak
A legjobb az egészben az, hogy kombinálhatja a cut parancsot más Linux/Unix parancsok szabványos kimenetével.
sed Az egyik ilyen szövegszerkesztő eszköz, amellyel törölheti, beszúrhatja és cserélheti a szöveget. A kimenetét egyszerűen a vágás parancsra irányíthatja.
Az alábbi példában a grep parancsot A kimenet a sed segédprogramba kerül, amely a kettőspontot (:) kötőjelre (-) cseréli, majd a cut megjeleníti az 1., 6. és 7. mezőt a következők szerint:
grep alice /etc/passwd | sed 's/:/-/g' | cut -d ' ' -f 1,5,7
Kimenet:
alice-x-1005-1008-Alice-/home/new/alice-/bin/sh
Szöveg munkavégzése Linuxon Kivágás segítségével
A vágás parancs egy rugalmas és hatékony parancssori segédprogram, amelyet a szövegkezelés különféle felhasználási módjaiban használhat. Műveleteket használ a szövegek fájlokból vagy szabványos bemeneti adatokból való kiszűrésére. A segédprogramnak van egy olyan előnye is, amely lehetővé teszi a felhasználók számára, hogy korlátozzák a megjeleníteni kívánt szöveget, és tetszés szerinti elválasztójeleket adjanak hozzá.
Ennek a parancsnak azonban vannak korlátai is. Nem használhat reguláris kifejezéseket határoló megadására, és nem használhat egyidejűleg több vágási parancsot sem. Ez a cikk a segédprogram alapszintű és haladó szintű gyakorlati példáit ismerteti, hogy segítsen a kezdőknek a Linux szövegmanipulációs parancsainak világos megértésében.
Szeretné feljavítani Linux-játékát, és többet megtudni a szövegmanipulációról? Íme az öt legjobb Linux parancssori eszköz az utazás megkezdéséhez.
Olvassa el a következőt
- Linux
- Linux parancsok
- Linux Elementary
- Linux Bash Shell
Rumaisa a MUO szabadúszó írója. Sok kalapot viselt, a matematikustól az információbiztonság-rajongóig, és most SOC elemzőként dolgozik. Érdeklődési köre az új technológiákról, Linux disztribúciókról és az információbiztonsággal kapcsolatos bármiről való olvasás és írás.
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!
Kattintson ide az előfizetéshez