Android

Linux skåret kommando med eksempler

Find Internal Volume in Fusion 360 | Do This before 3D-Printing

Find Internal Volume in Fusion 360 | Do This before 3D-Printing

Indholdsfortegnelse:

Anonim

Der er mange værktøjer tilgængelige i Linux- og Unix-systemer, der giver dig mulighed for at behandle og filtrere tekstfiler. Cut er et kommandolinjeværktøj, der giver dig mulighed for at klippe dele af linjer fra specificerede filer eller rørdata og udskrive resultatet til standardoutput. Det kan bruges til at skære dele af en linje ved afgrænser, byteposition og karakter.

I denne tutorial vil vi vise dig, hvordan du bruger Linux-klip-kommandoen gennem praktiske eksempler og detaljerede forklaringer af de mest almindelige klippemuligheder.

Sådan bruges klippekommandoen

Syntaks for klippekommandoen er som følger:

cut OPTION……

Når du bruger klippekommandoen, skal du bruge en og kun en af ​​følgende indstillinger:

  • -f (- --fields=LIST ) - Vælg ved at specificere et felt, et sæt felter eller et felt af felter. Dette er den mest anvendte mulighed. -b ( --bytes=LIST ) - Vælg ved at specificere en byte, et sæt bytes eller en række bytes. -c ( --characters=LIST ) - Vælg ved at specificere et tegn, et sæt tegn eller en række tegn.

Andre muligheder er:

  • -d ( --delimiter ) - Angiv en afgrænser, der skal bruges i stedet for standardtabellen "TAB". - komplement - komplementere udvælgelsen. Når du bruger denne indstilling vil klippet vise alle bytes, tegn eller felter undtagen det valgte. -s ( --only-delimited ) - Som standard vil udskriften udskrive en linje, der ikke indeholder nogen afgrænsningstegn. Ved brug af denne indstilling udskæres ikke linjer, der ikke indeholder afgrænsere. --output-delimiter - Standard er at bruge input-afgrænseren som output-afgrænseren. Denne mulighed giver dig mulighed for at specificere en anden output-afgrænsningsstreng.

Den klippede kommando kan acceptere nul eller flere input-FIL-navne. Hvis der ikke er angivet nogen FIL, eller når FIL er - , vil klippet læse standardindgangen.

LIST-argumentet, der sendes til indstillingerne -f , -b og -c , kan være et heltal, flere heltal adskilt af kommaer, et interval af heltal eller flere heltalintervaller adskilt af kommaer. Hver række kan være en af ​​følgende:

  • N det Nte felt, byte eller tegn, der starter fra 1. N- fra det Nte felt, byte eller tegn til slutningen af ​​linjen. NM fra N til M felt, byte eller karakter. -M fra det første til det Mth felt, byte eller tegn.

Sådan klippes efter felt

Klippekommando bruges for det meste til at vise valgte felter fra hver linje med filer eller standardinput. Når der ikke er angivet, er standardafgrænseren “TAB”.

I eksemplerne nedenfor bruger vi følgende fil. Alle felter er adskilt af faner.

test.txt

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

For at vise det første og det tredje felt, du vil bruge:

cut test.txt -f 1, 3

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

Eller hvis du vil vise fra 1. til 4. felt:

cut test.txt -f -4

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

Sådan skæres ud fra en afgrænser

For at skære baseret på en afgrænser skal du bruge indstillingen -d efterfulgt af den afgrænser, du vil bruge.

For eksempel for at vise 1. og 3. felt ved hjælp af “:” som en afgrænser, skriver du:

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

245:4540 Admin 01 535:3476 Sales 11

Du kan bruge et hvilket som helst enkelt tegn som afgrænser. I det følgende eksempel bruger vi mellemrumstegnet som en afgrænser og udskriver det 2. felt:

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

ipsum

Hvordan man supplerer markeringen

For at supplere listen med markeringer, --complement . Dette udskriver kun de felter, der ikke er valgt med indstillingen -f .

Følgende kommando udskriver alt felt undtagen det første og det tredje:

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

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

Sådan specificeres en output-afgrænser

For at specificere output-afgrænseren skal du bruge indstillingen --output-delimiter . For at indstille output-afgrænseren til _ vil du f.eks. Bruge:

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

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

Sådan klippes af Bytes and Characters

Inden vi går videre, lad os sondre mellem byte og tegn.

En byte er 8 bit og kan repræsentere 256 forskellige værdier. Da ASCII-standarden blev etableret, tog den hensyn til alle de bogstaver, tal og symboler, der var nødvendige for at arbejde med engelsk. ASCII-karaktertabellen har 128 tegn, og hvert tegn er repræsenteret af en byte. Da computere begyndte at blive globalt populære, begyndte teknologivirksomheder at introducere nye karakterkodninger til forskellige sprog og for sprog, der har mere end 256 karakterer, var en enkel 1 til 1 kortlægning ikke mulig. Dette fører til forskellige problemer såsom deling af dokumenter eller gennemsøgning af websteder og der var behov for en ny Unicode-standard, der kan håndtere de fleste af verdens skriftsystemer. UTF-8 blev oprettet for at løse disse problemer. I UTF-8 er ikke alle tegn repræsenteret med 1 byte. Tegn kan repræsenteres med 1 byte til 4 byte.

I de følgende eksempler bruger vi det ü tegn, der tager 2 byte.

Brug indstillingen -b ( --bytes ) til at skære et afsnit af en linje ud ved at angive en byteposition.

Vælg den 5. byte:

echo 'drüberspringen' | cut -b 5

b

Vælg 5., 9. og 13. byte:

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

bpg

Vælg området fra 1. til 5. byte:

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

drüb

På dette tidspunkt, hvor denne artikel skrives, har versionen af ​​klip bundet i GNU-kernetils ikke en mulighed for at klippe efter tegn. Når du bruger indstillingen -c , opfører klippet sig det samme, som når du bruger indstillingen -b .

Klip eksempler

Klippekommandoen bruges normalt i kombination med andre kommandoer gennem rørsystemer. Her er et par eksempler.

Få en liste over alle brugere

getent passwd fra getent passwd kommandoen sendes til at cut hvilket udskriver det første arkiverede ved hjælp af : som afgrænser.

getent passwd | cut -d ':' -f1

Se 10 mest anvendte kommandoer

I det følgende eksempel bruges klip til at stribe de første 8 byte fra hver linje i outputkommandoen til history .

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

Konklusion

Nu skal du have en god forståelse af, hvordan du bruger Linux-klippekommandoen. Skønt kommando har meget begrænsninger, selv om den er meget nyttig. Det understøtter ikke at specificere mere end et tegn som en afgrænser, og det understøtter ikke flere decimeter.

skære terminal