GeeksforGeeks (Magyar)

A UNIX vágás parancs egy parancs, amely kivágja a szakaszokat a fájlok minden sorából, és az eredményt szabványos kimenetre írja. Használható egy vonal részeinek bájtpozíció, karakter és mező szerinti vágására. Alapvetően a cut parancs szeletel egy sort, és kivonja a szöveget. Az opciót meg kell adni a paranccsal, különben hibát ad. Ha egynél több fájlnév van megadva, akkor az egyes fájlok adatait nem előzi meg a fájlnevek.

Szintaxis:

cut OPTION... ...

Tekintsünk két olyan fájlt, amelyek neve state.txt és capital.txt tartalmaz 5 indiai állam nevét és nagybetűkkel.

$ cat state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

A megadott opció nélkül hibát jelenít meg.

$ cut state.txtcut: you must specify a list of bytes, characters, or fieldsTry "cut --help" for more information.

Beállítások és leírásuk példákkal:

1. -b (byte): A konkrét bájtok kibontásához kövesse a -b opciót, a vesszővel elválasztva a bájtok számát. A bájt tartomány a kötőjel (-) segítségével is meghatározható. Meg kell adni a bájtok számát, különben hibát ad. A lapokat és a visszalépéseket egy bájtos karakterként kezeljük.

Egy speciális formát használ a bájtok kiválasztásához a sor elejétől a sor végéig:

In this, 1- indicate from 1st byte to end byte of a line$ cut -b 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhIn this, -3 indicate from 1st byte to 3rd byte of a line$ cut -b -3 state.txtAndAruAssBihChh

2. -c (oszlop): Karakterek szerinti kivágáshoz használja a -c opciót. Ez kiválasztja a -c opciónak adott karaktereket. Ez lehet vesszővel elválasztott számok listája vagy kötőjellel (-) elválasztott számtartomány. A tabulátorokat és a visszalépéseket karakterként kezeljük. Meg kell adni a karakterek listáját, különben hibát okoz az opcióval.

Szintaxis:

$cut -c filename

Itt a k A karakter kezdőpozíciója és n az egyes sorokban a karakter végpontját jelöli, ha k és n elválasztva “-” karakterrel, különben csak a karakterek helye az egyes sorokban a bemenetként vett fájlból.

$ cut -c 2,5,7 state.txtnrrahsmirhti

A vágás felett a fájl minden sorából második, ötödik és hetedik karaktert nyomtat ki.

$ cut -c 1-7 state.txtAndhraArunachAssamBiharChhatti

A cut parancs felett a fájl minden egyes sorának első hét karakterét kinyomtatja.

A Cut egy speciális űrlapot használ a karakterek kiválasztásához a sor elejétől a végéig:

$ cut -c 1- state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarhAbove command prints starting from first character to end. Here in command only startingposition is specified and the ending position is omitted.$ cut -c -5 state.txtAndhrArunaAssamBiharChhatAbove command prints starting position to the fifth character. Here the starting positionis omitted and the ending position is specified.

3. -f (mező): -c opció fix hosszúságú vonalaknál hasznos. A legtöbb unix fájl nem rendelkezik fix- hosszúságú vonalak. A hasznos információk kibontásához oszlopok helyett mezőkre kell vágnia. A mezők felsorolása vesszővel kell elválasztani. A tartományokat a -f opcióval nem írják le. A cut alapértelmezett mezőhatárolóként használja a fület, de a -d opció használatával más határolóval is működhet.
Megjegyzés: A szóközt nem tekintjük elválasztónak a UNIX-ban.

Szintaxis:

$cut -d "delimiter" -f (field number) file.txt

A State.txt fájlhoz hasonlóan a mezőket is szóköz választja el, ha a -d opciót nem használjuk, akkor az egész sort kinyomtatja:

$ cut -f 1 state.txtAndhra PradeshArunachal PradeshAssamBiharChhattisgarh

Ha a -d opciót használjuk, akkor a teret mezőelválasztónak vagy elválasztónak tekintette:

$ cut -d " " -f 1 state.txtAndhraArunachalAssamBiharChhattisgarh
Command prints field from first to fourth of each line from the file.Command:$ cut -d " " -f 1-4 state.txtOutput:Andhra PradeshArunachal PradeshAssamBiharChhattisgarh

4. –Komplement: Ahogy a neve is sugallja, kiegészíti a kimenetet. Ez az opció használható más opciókkal kombinációban, akár -f vagy -c használatával.

5. –Output-delimiter: Alapértelmezés szerint a kimenet határolója megegyezik az input határolóval, amelyet a cut -d opcióval adunk meg. A kimeneti határoló megváltoztatásához használja az –output-delimiter = ”elválasztó” beállítást.

$ cut -d " " -f 1,2 state.txt --output-delimiter="%"Andhra%PradeshArunachal%PradeshAssamBiharChhattisgarh

Itt vágja le a parancsot a határoló (%) megváltoztatására a standard kimenet között mezők, amelyeket az -f opcióval adunk meg.

6. –Version: Ez az opció a rendszeren futó cut verzió megjelenítésére szolgál.

$ cut --versioncut (GNU coreutils) 8.26Packaged by Cygwin (8.26-2)Copyright (C) 2016 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later .This is free software: you are free to change and redistribute it.There is NO WARRANTY, to the extent permitted by law.Written by David M. Ihnat, David MacKenzie, and Jim Meyering.

A kivágott parancs alkalmazásai

1. A farok használata csövekkel (|): A vágás parancs az unix számos más parancsával csövezhető. Az alábbi példában a cat parancs kimenetét adjuk meg a cut parancs -f opciójának bemeneteként az state.txt fájlból érkező állapotnevek fordított sorrendbe rendezéséhez.

$ cat state.txt | cut -d " " -f 1 | sort -rChhattisgarhBiharAssamArunachalAndhra

Egy vagy több szűrővel is csövezhető a további feldolgozáshoz. A következő példához hasonlóan a cat, head and cut parancsot is használjuk, amelynek kimenetét a list.txt fájlnév tárolja a direktíva (>) használatával.

$ cat state.txt | head -n 3 | cut -d " " -f 1 > list.txt$ cat list.txtAndhraArunachalAssam

Köszönöm Saloni Gupta, hogy további példákat közölt.

Címkék:

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük