Linux ger cut
kommando för att ta bort sektioner från varje rad av produktionen i bash. cut
kommandot ger en mekanism för att filtrera extrahera kolumn / text från en fil eller standardutmatning. Detaljerade exempel finns nedan., Vi har följande textfil som heter fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
välj kolumn
kommandot klipp ger möjlighet att välja en angiven kolumn enligt teckennummer för alla rader. Här skriver vi ut alla rader 3 teckenlinje för rad till konsolen. Detta kommer bara att skriva ut ett enda tecken.,
$ cut -c3 fruits.txt
Välj kolumn för teckenintervall
i föregående exempel har vi tryckt ett enda tecken till terminalen. Vi kan också skriva ut flera tecken till konsolen genom att ange teckenintervallet som nedan. Vi kan se att teckenindexet börjar vid 1.,
$ cut -c1-6 fruits.txt
Välj kolumn med startposition
en annan användbar funktion i cut anger bara att starta position upp till slutet.
$ cut -c3- fruits.txt
Välj kolumn med slutposition
Vi kan skriva ut intervall från start till angiven position och endast ange slutposition., Detta kommer att anta startposition som 1
$ cut -c-3 fruits.txt
Välj ett fält
fältet är en del av textavgränsad med specifik tecken som Space, tab, double comma, etc. Vi kan välja text med fältnummer. Som standard är fältavgränsare fliken. Vår text är redan tillgänglig flik för avgränsning. I det här exemplet väljer vi 3. fält.,
$ cut -f3 fruits.txt
Välj flera fält
som vi gör i tecken kan vi också ange fältområde. Vi väljer fruktnamn och räknar med följande kommando.
$ cut -f1-2 fruits.txt
följande exempel väljer mer än ett fält en efter en som inte använder intervall.,
$ cut -f1,2,3 fruits.txt
sista fältet
en av de mest populära användningsområdena av cut
skriver ut sista fältet. Problemet är att fältantalet kan ändras enligt text och vi kan inte ange det sista fältet endast med kommandot cut
. Följande exempel använder kommandot rev
för att få det sista fältet.,
$ cat fruits.txt | rev | cut -f1 | rev
Välj fält inkluderar angivna tecken
som standard cut
iv id = ”har inte möjlighet att utesluta rader enligt tecken, men grep
kan enkelt användas för att implementera den här funktionen., Vi väljer bara rader som innehåller app
$ grep "app" fruits.txt | cut -f1-2
Välj fält utom för specificerade fält.tecken
Vi kan vända det föregående exemplet och ta bort oönskade rader. Vi kommer att ta bort rader innehåller app
och sedan skriva ut kolumner från 1 till 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
ange avgränsare
avgränsaren används för att dela upp fält. Som standard används fliken som avgränsare. Men det kan anges med -d
alternativ som nedan. Efter exemplet använder vi:
som avgränsare eftersom filenpasswd
använder den. Då vill vi bara visa användarnamn som finns i fält 1.,
$ cut -d: -f1 /etc/passwd
Skriv ut utom fält
som vi ser tidigare kan fält skrivas ut som intervall också. Vi kan också skriva ut genom att undanta fält. Detta kommer att skriva ut alla döpa fält. Efter exemplet kan vi vilja skriva ut alla fält utom 2.
ändra avgränsare
Text kan ha avgränsare som standard. I vissa situationer kanske vi vill ändra avgränsare när vi skriver ut till konsolen., --output-delimiter
option can be used for this operation. The following example will change the tab delimiter to the comma.
$ cut -f1,2,3 --output-delimiter="," fruits.txt