linux之cut命令詳解

cut 命令從文件的每一行剪切字節、字符和字段並將這些字節、字符和字段輸出至標準輸出。

如果不指定 File 參數,cut 命令將讀取標準輸入。必須指定 -b、-c 或 -f 標誌之一。若處理的是字段,則定界符隔開的即爲各字段,而輸出時字段也以給定的定界符隔開。默認的定界符爲製表字符(TAB)。

語法

cut  [-option] [file]

參數:

  • -b,–bytes:以字節爲單位進行分割。這些字節位置將忽略多字節字符邊界,除非也指定了 -n 標誌。
  • -c,–characters :以字符爲單位進行分割。
  • -d,–delimiter :自定義分隔符,默認爲製表符。
  • -f,–field :與-d一起使用,指定顯示哪個區域,即選取每行的第N列。
  • -n :取消分割多字節字符。僅和 -b 標誌一起使用。如果字符的最後一個字節落在由 -b 標誌的 List 參數指示的
    範圍之內,該字符將被寫出;否則,該字符將被排除

範圍控制:

n:只有第n項

n-:從第n項一直到行尾

n-m:從第n項到第m項(包括m)

-m:從一行的開始到第m項(包括m)

-:從一行的開始到結束的所有項

實例:

cat /etc/passwd | cut -b1-3 #取每行的第1-3字字節

cat /etc/passwd | cut -b1-3,5-7,8 #取每行的第1-3,5-7,8的字節(後面的數字會先進行從小到大的排列) 需要事先知道具體字節,很容易出錯

cat song.txt |cut -nb 1,2,3#當 -b 添加 -n 後則不會分割多字節 (我的系統是utf-8,所以需要用三個字節來表示一個漢字)

cat /etc/passwd | cut -c1,3 #適用於中文 

cat /etc/passwd | cut -d : -f 3 #以:分割,取第三段
cat /etc/passwd | cut -d '' #以空格進行分割,且是一個空格

一、cut實戰演練

cut.txt文件

1

2

3

4

root,x,0,0,root,/root,/bin/bash

daemon,x,1,1,daemon,/usr/sbin,/usr/sbin/nologin

bin,x,2,2,bin,/bin,/usr/sbin/nologin

sys,x,3,3,sys,/dev,/usr/sbin/nologin

實戰演練

輸出每一行的第二個字節內容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -b 2 cut.txt

> o

> a

> i

> y

>

>

輸出每一行的第二個字符內容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -c 2 cut.txt

> o

> a

> i

> y

>

>

輸出每一行第一列內容

1

2

3

4

5

6

7

> root@wing:~/wing # cut -d , -f 1 cut.txt

> root

> daemon

> bin

> sys

>

>

輸出每一行第一、二列內容

1

2

3

4

5

6

> root@wing:~/wing # cut -d , -f 1,2 cut.txt

> root,x

> daemon,x

> bin,x

> sys,x

>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章