10 gyakorlati Linux Cut parancspélda a fájloszlopok kiválasztására
A Linux parancsvágást használják a szövegfeldolgozáshoz. Ezzel a paranccsal oszlopok kiválasztásával kivonhatja a szöveg egy részét a fájlból.
Ez az oktatóanyag néhány gyakorlati példát tartalmaz a cut parancsról, amelyet a napi parancssori tevékenységekben használhat.
A példa nagy részében a következő tesztfájlt fogjuk használni.
$ cat test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Válassza a Karakterek oszlopát
Ha csak egy kívánt oszlopot szeretne kinyerni egy fájlból, használja a -c opciót. Az alábbi példa a test.txt fájl minden sorának 2. karakterét jeleníti meg.
$ cut -c2 test.txtaps
Amint fentebb látható, az a, p, s karakterek a második karakterek a test.txt fájl minden sora.
Karakterek oszlopának kiválasztása a Tartomány használatával
A karakterek tartománya is kinyerhető egy fájlból, a kezdő és a végpont megadásával -. Az alábbi példa az egyes sorok első 3 karakterét vonja ki a test.txt nevű fájlból.
$ cut -c1-3 test.txtcatcpls
Válassza ki a Karakterek oszlopát kezdő vagy végső pozíció használatával
A kezdő- vagy a véghelyzet átadható a parancs vágásához a -c kapcsolóval.
Az alábbiakban csak a ‘-‘ előtti kezdő pozíciót adjuk meg. Ez a példa az egyes sorok 3. karakterétől a végéig von ki a test.txt fájlból.
$ cut -c3- test.txtt command for file oriented operations. command for copy files or directories. command to list out files and directories with its attributes.
Az alábbiakban csak a ‘-’ utáni végpontot adjuk meg. Ez a példa 8 karaktert von ki az egyes sorok elejéből a test.txt fájlból.
$ cut -c-8 test.txtcat commcp commals comma
A teljes sor kinyomtatásra kerül, ha nem ad meg számot a „-” előtt vagy után, az alábbiak szerint.
$ cut -c- test.txtcat command for file oriented operations.cp command for copy files or directories.ls command to list out files and directories with its attributes.
Válasszon ki egy adott mezőt egy fájlból
Az x szám kiválasztása helyett karaktereket, ha egy egész mezőt szeretne kibontani, kombinálhatja az -f és -d opciókat. Az -f opció határozza meg, hogy melyik mezőt szeretné kibontani, és a -d opció határozza meg, hogy mi az a mezőhatároló, amelyet a bemeneti fájlban használnak.
A következő példa csak a / etc / passwd fájl a mezőhatároló használatával: (kettőspont). Ebben az esetben az 1. mező a felhasználónév. A fájl
$ cut -d":" -f1 /etc/passwdrootdaemonbinsyssyncgamesbala
Több mező kiválasztása egy fájlból
Egynél több mezőt is kivonhat egy fájlból vagy az állományból. Az alábbi példa azoknak a felhasználóknak a felhasználónevét és otthoni könyvtárát mutatja, akiknek a bejelentkezési héja “/ bin / bash”.
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1,6root:/rootbala:/home/bala
A mezők megjelenítéséhez adja meg a kezdő mezőt és a befejező mező az alábbiak szerint: Ebben a példában az 1-től 4-ig, 6-ig és 7-es mezőt választjuk
$ grep "/bin/bash" /etc/passwd | cut -d":" -f1-4,6,7root:x:0:0:/root:/bin/bashbala:x:1000:1000:/home/bala:/bin/bash
Csak mezők kiválasztása, ha egy sor tartalmazza az elválasztót
Az / etc / passwd példánkban, ha a (kettőspont) helyett más határolót ad át, akkor a cut csak az egész sort jeleníti meg.
A következő példában A határolót | (pipe) néven adta meg, és a cut parancs egyszerűen megjeleníti az egész sort, még akkor is, ha nem talál olyan sort, amelynek | (pipe) van elválasztó.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -f1root:x:0:0:root:/root:/bin/bashbala:x:1000:1000:bala,,,:/home/bala:/bin/bash
De a -s opcióval csak azokat a sorokat lehet szűrni és megjeleníteni, amelyek a megadott elválasztót tartalmazzák.
A következő példa nem jelenít meg kimenetet, mivel a cut parancs nem Nem találunk olyan sorokat, amelyek | (pipe) elválasztóként szerepelnek az / etc / passwd fájlban.
$ grep "/bin/bash" /etc/passwd | cut -d"|" -s -f1
Az összes mező kiválasztása a megadott mezők kivételével
A kiválasztási mezőlista kiegészítése érdekében használja a –complement opciót.
A következő példa megjelenik az / etc / passwd fájl összes mezője, a 7. mező kivételével
$ grep "/bin/bash" /etc/passwd | cut -d":" --complement -s -f7root:x:0:0:root:/rootbala:x:1000:1000:bala,,,:/home/bala
Kimeneti határoló megváltoztatása a kijelzőhöz
Alapértelmezés szerint a kimenet határolója megegyezik bemeneti határolóként, amelyet a cut -d opcióban adunk meg.
A kimeneti határoló megváltoztatásához használja az –output-delimiter opciót az alábbiak szerint. Ebben a példában a bemeneti határoló a következő: (kettőspont), de a kimeneti határoló # (hash).
$ grep "/bin/bash" /etc/passwd | cut -d":" -s -f1,6,7 --output-delimiter="#"root#/root#/bin/bashbala#/home/bala#/bin/bash
A kimeneti határoló módosítása új sorra
Ebben a példában a cut parancs kimenetének minden mezője külön sorban jelenik meg. Még mindig használtuk az –output-delimiter elemet, de az értéke $ ‘\ n’, ami azt jelzi, hogy új sort kell felvennünk a kimenet határolójaként.
$ grep bala /etc/passwd | cut -d":" -f1,6,7 --output-delimiter=$"\n"bala/home/bala/bin/bash
Combine Vágás más Unix parancs kimenettel
A cut parancs ereje akkor valósulhat meg, ha összekapcsolja más Unix parancs stdoutjával.
Miután elsajátította a cut parancs alapvető használatát amiket a fentiekben kifejtettünk, a cut paranccsal okosan használhatja a szöveges manipuláció sok követelményének megoldását. Megmutattuk azt is, hogyan szűrtük le a ps parancs kimenetét a grep és a sed segítségével, mielőtt a végső kimenetet megadtuk volna a cut parancsnak.Itt a -d és -f parancsot használtuk, amelyet a fenti példákban ismertettünk.
Ha tetszett ez a cikk, akkor ez is tetszhet neked.
|
|