Android

Linux kivágási parancs példákkal

15 Windows Settings You Should Change Now!

15 Windows Settings You Should Change Now!

Tartalomjegyzék:

Anonim

A Linux és az Unix rendszerekben számos segédprogram elérhető, amelyek lehetővé teszik a szöveges fájlok feldolgozását és szűrését. A kivágás egy parancssori segédprogram, amely lehetővé teszi a sorok egyes részeinek kivágását a megadott fájlokból vagy a vezetékes adatokból, és az eredményt a szabványos kimenetre nyomtathatja. Használható egy sor egyes részeinek elválasztására, bájt helyzetére és karakterére.

Ebben az oktatóanyagban megmutatjuk, hogyan kell használni a Linux vágási parancsot a leggyakoribb vágási lehetőségek gyakorlati példáin és részletes magyarázatain keresztül.

A vágási parancs használata

A vágási parancs szintaxisa a következő:

cut OPTION……

A cut parancs használatakor a következő lehetőségek közül egyet és csak egyet kell használnia:

  • -f ( --fields=LIST ) - Válassza ki a mező, --fields=LIST vagy --fields=LIST megadásával. Ez a leggyakrabban használt lehetőség. -b ( --bytes=LIST ) - Válassza ki a megadásával, bájt, --bytes=LIST vagy --bytes=LIST megadásával. -c (- --characters=LIST ) - Válassza ki a karakter, a karakterkészlet vagy a karakterkészlet megadásával.

További lehetőségek:

  • -d ( --delimiter ) - Adjon meg egy elválasztót, amelyet az alapértelmezett “TAB” elválasztó helyett fog használni. - kiegészítés - kiegészíti a választást. Ennek az opciónak a használatakor a kivágás az összes bájtot, karaktert vagy mezőt megjeleníti a kiválasztott kivételével. -s (- --only-delimited ) - Alapértelmezés szerint a vágás minden olyan sort kinyomtat, amely nem tartalmaz határoló karaktert. Ennek az opciónak a használatakor a vágás nem nyomtat vonalakat, amelyek nem tartalmaznak határolókat. - kimeneti --output-delimiter - Az alapértelmezés szerint a bemeneti elválasztót használja a kimeneti elválasztót. Ez a beállítás lehetővé teszi egy másik kimeneti elválasztó karakterlánc megadását.

A vágási parancs elfogadhat nulla vagy több bemeneti FÁJL nevet. Ha nincs megadva FÁJL vagy ha a FÁJZ értéke - , a vágás a normál bemenetet fogja olvasni.

Az -f , -b és -c opcióknak átadott LIST argumentum lehet egész szám, vesszővel elválasztott több egész szám, egész szám tartomány vagy vesszővel elválasztott több egész tartomány. Mindegyik tartomány lehet a következők egyikének:

  • N az N-edik mező, bájt vagy karakter, az 1.-től kezdve. N- - az N-edik mezőt, bájtot vagy karaktertől a sor végéig. NM az N-től az M-ig, bájt vagy karakter. -M az elsőtől az Mth mezőig, byte vagy karakter.

Hogyan lehet vágni mezőnként

A Kivágás parancsot főként az egyes fájlsorok vagy a szabványos bemenetek kiválasztott mezőinek megjelenítésére használják. 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. Az összes mezőt fülek választják el egymástól.

test.txt

245:789 4567 M:4540 Admin 01:10:1980 535:763 4987 M:3476 Sales 11:04:1978

Az 1. és a 3. mező megjelenítéséhez használja:

cut test.txt -f 1, 3

245:789 M:4540 535:763 M:3476

Vagy ha az 1. és a 4. mezőt szeretné megjeleníteni:

cut test.txt -f -4

245:789 4567 M:4540 Admin 535:763 4987 M:3476 Sales

Hogyan lehet vágni egy elválasztó alapján?

Az elválasztó alapján történő vágáshoz használja 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 „:” jelzővel, írja be:

cut test.txt -d ':' -f 1, 3

245:4540 Admin 01 535:3476 Sales 11

Bármelyik karaktert elválasztóként használhatja. A következő példában a szóköz karaktert használjuk elválasztóként, és kinyomtatjuk a 2. mezőt:

echo "Lorem ipsum dolor sit amet" | cut -d ' ' -f 2

ipsum

Hogyan lehet kiegészíteni a választást?

A kiválasztási mezők listájának kiegészítéséhez használja a - --complement lehetőséget. Ez csak azokat a mezőket nyomtatja ki, amelyeket a -f opcióval nem választott ki.

A következő parancs kinyomtatja az összes mezőt, az 1. és a 3. kivételével:

cut test.txt -f 1, 3 --complement

4567 Admin 01:10:1980 4987 Sales 11:04:1978

A kimeneti határoló meghatározása

A kimeneti határoló megadásához használja a --output-delimiter lehetőséget. Például, ha a kimeneti határolót _ értékre állítja, akkor a következőket használja:

cut test.txt -f 1, 3 --output-delimiter='_'

245:789_M:4540 535:763_M:3476

Hogyan lehet kivágni bájtok és karakterek szerint

Mielőtt továbbmenne, különbséget teszünk a bájtok és a karakterek között.

Egy bájt 8 bit és 256 különböző értéket képviselhet. Az ASCII szabvány létrehozásakor figyelembe vett minden betűt, számot és szimbólumot, amelyek az angol nyelv használatához szükségesek. Az ASCII karaktertábla 128 karakterből áll, és mindegyik karaktert egy bájt képviseli. Amikor a számítógépek világszerte népszerűvé váltak, a technológiai vállalatok új karakterkódolásokat vezettek be a különböző nyelvekre és a több mint 256 karaktert tartalmazó nyelvekre, az egyszerű 1: 1 leképezés nem volt lehetséges. Ez különböző problémákhoz vezet, mint például a dokumentumok megosztása vagy a webhelyek böngészése, és szükség volt egy új Unicode szabványra, amely képes kezelni a világ legtöbb írási rendszerét. Az UTF-8-ot ezeknek a problémáknak a megoldására hozták létre. Az UTF-8-ban nem minden karakter van egy bájtban ábrázolva. A karakterek ábrázolhatók 1 bájt és 4 bájt között.

A következő példákban az ü karaktert használjuk, amely 2 bájtot vesz igénybe.

A -b ( --bytes ) opcióval kivághatja a vonal egy részét bájt pozíciójának megadásával.

Válassza ki az 5. bájtot:

echo 'drüberspringen' | cut -b 5

b

Válassza ki az 5., 9. és 13. bájtot:

echo 'drüberspringen' | cut -b 5, 9, 13

bpg

Válassza ki az 1-5 bájt tartományt:

echo 'drüberspringen' | cut -b 1-5

drüb

A cikk írásakor a GNU coreutils-ben csomagolt vágott változatnak nincs lehetősége karakterekre vágni. A -c opció használatakor a vágás ugyanúgy viselkedik, mint a -b kapcsoló használatakor.

Kivágott példák

A kivágási parancsot általában más parancsokkal kombinálva használják a csővezetéken keresztül. Íme néhány példa.

Készítsen összes felhasználó listáját

A getent passwd parancs kimenete átadódik a cut amely kinyomtatja az 1. getent passwd : elválasztóval :

getent passwd | cut -d ':' -f1

Tekintse meg a 10 leggyakrabban használt parancsot

A következő példában a kivágást használjuk az első 8 byte bontására az history parancs kimenete minden sorából.

history | cut -c8- | sort | uniq -c | sort -rn | head

Következtetés

Mostanra jól meg kell értenie a Linux cut parancs használatát. Bár a cut parancs nagyon hasznos, van néhány korlátozása. Nem támogatja egynél több karakter meghatározását elválasztóként, és nem támogat több decimétert.

vágott terminál