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:

instagram viewer
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.

Az 5 leghasznosabb Linux szövegmanipulációs parancs

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

RészvényCsipogEmail
Kapcsolódó témák
  • Linux
  • Linux parancsok
  • Linux Elementary
  • Linux Bash Shell
A szerzőről
Rumaisa Niazi (10 publikált cikk)

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.

Továbbiak Rumaisa Niazitól

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