Linux dostarcza cut
polecenie usuwania sekcji z każdej linii wyjścia w bash. cut
polecenie zapewnia mechanizm filtrowania kolumny/tekstu z pliku lub standardowego wyjścia. Szczegółowe przykłady można znaleźć poniżej., Mamy następujący plik tekstowy o nazwie fruits.txt
apple 1 good grape 5 bad banana 2 not bad
cut OPTION... ...
wybierz kolumnę
polecenie cut umożliwia wybranie określonej kolumny zgodnie z numerem znaku dla wszystkich wierszy. Tutaj wydrukujemy wszystkie wiersze 3 znak linia po linii do konsoli. Spowoduje to wydrukowanie tylko jednego znaku.,
$ cut -c3 fruits.txt
wybierz kolumnę dla zakresu znaków
W w poprzednim przykładzie wydrukowaliśmy pojedynczy znak na terminalu. Możemy również wydrukować wiele znaków do konsoli, określając zakres znaków jak poniżej. Widzimy, że indeks znaków zaczyna się od 1.,
$ cut -c1-6 fruits.txt
wybierz kolumnę za pomocą pozycji początkowej
inną użyteczną cechą cięcia jest określenie tylko pozycji początkowej do końca.
$ cut -c3- fruits.txt
wybierz kolumnę za pomocą pozycji końcowej
możemy wydrukować Zakres Od początku do podanej pozycji tylko podając pozycję końcową., To przyjmie pozycję początkową jako 1
$ cut -c-3 fruits.txt
Wybierz Pojedyncze pole
pole jest częścią tekstu oddzieloną określonymi znakami, takimi jak spacja, tabulator, podwójny przecinek itp. Możemy wybrać tekst z numerami pól. Domyślnie ogranicznikiem pól jest tab. Nasz tekst jest już dostarczony zakładka do rozgraniczenia. W tym przykładzie wybierzemy 3. pole.,
$ cut -f3 fruits.txt
Wybierz wiele pól
Jak to robimy w znakach możemy również określić zakres pól. Wybieramy nazwy owoców i liczymy za pomocą następującego polecenia.
$ cut -f1-2 fruits.txt
poniższy przykład wybiera więcej niż jedno pole jeden po drugim, nie używając zakresów.,
$ cut -f1,2,3 fruits.txt
ostatnie pole
jednym z najpopularniejszych zastosowań cut
jest drukowanie ostatniego pola. Problem polega na tym, że liczba pól może się zmieniać w zależności od tekstu i nie możemy podać ostatniego pola tylko za pomocą polecenia cut
. Poniższy przykład używa polecenia rev
do pobrania ostatniego pola.,
$ cat fruits.txt | rev | cut -f1 | rev
Wybierz pola zawierające określone znaki
według domyślnie cut
nie mają możliwości wykluczania linii według znaków, ale grep
mogą być łatwo użyte do implementacji tej funkcji., Wybieramy tylko wiersze zawierające app
$ grep "app" fruits.txt | cut -f1-2
select Fields except for specified chars
możemy odwrócić poprzedni przykład i usunąć niechciane wiersze. Usuniemy linie zawierające app
, a następnie wydrukujemy kolumny od 1 do 2 .,
$ grep -v "app" fruits.txt | cut -f1-2
Określ Ogranicznik
ogranicznik służy do dzielenia pól. Domyślnie Tab jest używana jako ogranicznik. Ale to może być określone z-d
opcja jak poniżej. Idąc za przykładem, używamy :
jako ogranicznika, ponieważ plikpasswd
go używa. Następnie chcemy pokazać tylko nazwy użytkowników, które znajdują się w polu 1.,
$ cut -d: -f1 /etc/passwd
Drukuj poza polami
jak widzimy wcześniej pola mogą być również drukowane jako zakresy. Możemy również drukować, wyłączając pola. Spowoduje to wydrukowanie wszystkich pól zmiany nazwy. Idąc za przykładem, możemy chcieć wydrukować wszystkie pola z wyjątkiem 2.
Zmień Ogranicznik
tekst może mieć domyślnie ograniczniki. W niektórych sytuacjach możemy chcieć zmienić ogranicznik podczas drukowania na konsoli., --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