Przykłady użycia polecenia “cut”; wycinanie kolumn, zakresów znaków, pipelining and the like.

Zakładając, że mamy przygotowany plik input z następującą zawartością (tutaj notowania KGHM):

<TICKER>,<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOLUME>
KGHM,1997-07-10,23.50,23.50,23.50,23.50,2462894
KGHM,1997-07-11,24.00,24.00,24.00,24.00,1557833
KGHM,1997-07-14,21.60,21.60,21.60,21.60,398333

, możemy zacząć zabawę z cut-em. Do dzieła!

Operacje na kolumnach

  • wyciągnąć tylko drugą kolumnę
# -d określa delimiter, ',' to nasz delimiter, -f2 określa drugą kolumnę
cut -d ',' -f2 input
<DTYYYYMMDD>
1997-07-10
1997-07-11
1997-07-14

 

  • wyciągnąć pierwszą i drugą kolumnę
# -f1,2 określa pierwszą i drugą kolumnę
cut -d ',' -f1,2 input
<TICKER>,<DTYYYYMMDD>
KGHM,1997-07-10
KGHM,1997-07-11
KGHM,1997-07-14

 

  • wyciągnąć kolumny od drugiej do szóstej
 
# -f2-6 określa od drugiej do szóstej kolumny
cut -d ',' -f2-6 input
<DTYYYYMMDD>,<OPEN>,<HIGH>,<LOW>,<CLOSE>
1997-07-10,23.50,23.50,23.50,23.50
1997-07-11,24.00,24.00,24.00,24.00
1997-07-14,21.60,21.60,21.60,21.60

 

Operacje na znakach

  • możemy wyciągnąć np. pierwsze  20 znaków
# -c-20 określa pierwsze 20 znaków
cut -c-20 input
<TICKER>,<DTYYYYMMDD
KGHM,1997-07-10,23.5
KGHM,1997-07-11,24.0
KGHM,1997-07-14,21.6

 

  • albo znaki od 20 do końca
# -c20- określa znaki od 20 do końca
cut -c20- input
D>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<VOLUME>
50,23.50,23.50,23.50,2462894
00,24.00,24.00,24.00,1557833
60,21.60,21.60,21.60,398333

 

Pipelining

Oczywiście polecenie cut działa też z pipem (|), czyli możemy zapisać np.

echo "jeden,dwa,trzy,cztery" | cut -d ',' -f2,3
dwa,trzy

 

Related Posts: