A Linux és Unix rendszerekben számos segédprogram áll rendelkezésre, amelyek lehetővé teszik a szöveges fájlok feldolgozását és szűrését. A cut
egy parancssori segédprogram, amely lehetővé teszi a vonalak egy részének kivágását meghatározott fájlokból vagy csövezett adatokból, és az eredmény kinyomtatását szabványos kimenetre. Használható egy vonal részeinek elválasztására elválasztó, bájt pozíció és karakter szerint.
Ebben a cikkben megmutatjuk, hogyan kell használni a cut
parancs gyakorlati példákon és a leggyakoribb lehetőségek részletes magyarázatán keresztül.
A cut parancs használata #
A cut
szintaxisa parancs a következő:
Azok a beállítások, amelyek megadják a cut
használatát elválasztó, bájt pozíció vagy karakter a kijelölt részek kivágásakor a következőek:
A fent felsorolt opciók közül egyet használhat, és csak egyet.
További lehetőségek: :
-
-d
(--delimiter
) – Adjon meg egy elválasztót, amelyet az alapértelmezett helyett használni fog ” TAB ”elválasztó. -
--complement
– Kiegészíti a választást. Ennek az opciónak a használatakorcut
megjeleníti az összes bájtot, karaktert, vagy mezők, kivéve a se bekapcsolva. -
-s
(--only-delimited
) – Alapértelmezés szerintcut
kinyomtatja azokat a vonalakat, amelyek nem tartalmaznak elválasztó karaktert. Ha ezt a beállítást használja, acut
nem nyomtat elválasztókat nem tartalmazó sorokat. -
--output-delimiter
– Az alapértelmezett viselkedés acut
jelentése az, hogy a bemeneti határolót használja a kimenet határolójaként. Ez az opció lehetővé teszi egy másik kimeneti határoló karakterlánc megadását.
A cut
parancs nulla vagy több bemeneti FÁJL nevet képes elfogadni. Ha nincs megadva FILE
, vagy ha FILE
-
, cut
a standard bemenetből fog olvasni.
A LIST
argumentum át lett adva a -f
, -b
és -c
opciók lehetnek egész szám, vesszővel elválasztott több egész szám, vesszőkkel elválasztott egész szám vagy több egész tartomány . Mindegyik tartomány a következő lehet:
-
N
az N-edik mező, bájt vagy karakter, 1-től kezdődően. -
N-
az N. mezőtől, bájttól vagy karaktertől a sor végéig. -
N-M
az N-től az Mth mezőhöz, bájthoz vagy karakterhez. -
-M
az elsőtől az Mth mezőig, bájtig vagy karakterig.
Kivágás # mező szerint
A kivágandó mezők megadásához hívja meg a parancsot a -f
opcióval. Ha nincs megadva, akkor az alapértelmezett határoló a “TAB”.
Az alábbi példákban a következő fájlt fogjuk használni. A mezőket fülekkel kell elválasztani.
Például az 1. és a 3. mező használatához:
Vagy ha az 1. és a 4. mező között szeretne megjeleníteni:
Hogyan kell vágni egy elválasztó alapján #
Ha egy elválasztó alapján szeretne vágni, hívja meg a parancsot a -d
opciót, majd a használni kívánt elválasztót.
Például az 1. és a 3. mező megjelenítéséhez a “:” használatával határolóként a következőt írja be:
Bármelyik karakter használható elválasztóként. A következő példában a szóköz karaktert használjuk elválasztóként, és kinyomtatjuk a 2. mezőt:
Hogyan egészítsük ki a kijelölést #
A kiválasztási mezőlista kiegészítéséhez használja a --complement
beállítást. Ez csak azokat a mezőket fogja kinyomtatni, amelyek nincsenek kiválasztva a -f
opcióval.
A következő parancs az 1. és a 3. kivételével az összes mezőt kinyomtatja:
Kimeneti határoló megadása #
A kimenethatároló megadásához használja a --output-delimiter
opciót. Például, ha a kimeneti határolót _
-re állítja, akkor a következőket kell használnia: / div>
Hogyan lehet kivágni bájtok és karakterek szerint #
Mielőtt továbblépnénk, különböztessük meg a bájtokat és a karaktereket.
Egy bájt 8 bites, és képviselheti 256 különböző érték. Az ASCII szabvány létrehozásakor figyelembe vette az angol nyelv használatához szükséges összes betűt, számot és szimbólumot. Az ASCII karaktertábla 128 karakterből áll, és minden karaktert egy bájt képvisel.Amikor a számítógépek globálisan hozzáférhetővé váltak, a technológiai vállalatok új karakterkódolásokat kezdtek bevezetni a különböző nyelvek számára. A 256 karakternél hosszabb nyelvek esetében az egyszerű 1: 1 leképezés nem volt lehetséges. Ez különböző problémákhoz vezet, például a dokumentumok megosztásához vagy a weboldalak böngészéséhez, és szükség volt egy új Unicode szabványra, amely képes kezelni a világ legtöbb írórendszerét. Az UTF-8 ezen problémák megoldására jött létre. Az UTF-8 nem minden karaktert ábrázol 1 bájttal. A karaktereket 1 bájt és 4 bájt között lehet ábrázolni.
A -b
(--bytes
) opció megadja a parancsnak, hogy metszeteket vág le minden sorból a megadott bájtpozíciók szerint.
A következő példákban a ü
karaktert használjuk, amely 2 bájtot vesz igénybe. p> Válassza ki az 5. bájtot:
Válassza ki az 5., 9. és 13. bájtot:
Válassza ki az 1. és 5. bájt közötti tartományt:
A cikk írásakor a cut
GNU coreutils csomagban található verziójának nincs egy lehetőség a karakterek szerinti kivágásra. A -c
opció használatakor a cut
ugyanúgy viselkedik, mint a -b
opció használatakor.
Példák kivágása #
A cut
parancsot általában más parancsokkal együtt használják piping útján. Íme néhány példa:
Az összes felhasználó listájának lekérése #
A getent passwd
parancs kimenete átkerül a cut
, amely kinyomtatja az 1. mezőt, a :
elemet használva elválasztóként. A kimenet az összes rendszerfelhasználó listáját mutatja.
10 leggyakrabban használt parancs megtekintése #
A következő példában a cut
az első 8 bájt levonása a history
parancs minden egyes sorából.
Következtetés #
cut
paranccsal kijelölt mezőket jeleníthetünk meg az adott fájlok minden sorából vagy a szokásos bemenetből.
Bár nagyon hasznos, tartalmaz néhány korlátozást. Nem támogatja egynél több karakter megadását elválasztóként és nem támogatja több elválasztót.