cut命令的使用例項

安全劍客發表於2020-05-11
cut 用於文字處理。透過選擇列,可以使用此 從檔案中提取文字的一部分。
cut命令的選項

Cut基本語法:

cut OPTION... [FILE]...

選項:

  • -f : 透過指定哪一個欄位進行提取。cut命令使用“TAB”作為預設的欄位分隔符。
  • -d : “TAB”是預設的分隔符,使用此選項可以更改為其他的分隔符。
  • --complement : 此選項用於排除所指定的欄位。
  • --output-delimiter : 更改輸出內容的分隔符。
如何分割

cut最常用的選項是 -d-f的組合。它基本上會根據特定的分隔符和列出的欄位提取內容。

下面的程式碼僅使用分隔符 :列印 /etc/passwd檔案中每一行的第一個欄位。

[root@localhost ~]# cut -d ':' -f 1 /etc/passwd
root
bin
daemon
adm
lp
sync
shutdown
…

下面的程式碼從 /etc/passwd檔案提取第一和第六個欄位:

[root@localhost ~]# grep '/bin/bash' /etc/passwd| cut -d ':' -f 1,6
root:/root
bob:/home/bob
user01:/home/user01

要顯示欄位的範圍,請指定以 -分隔的開始欄位和結束欄位,如下所示:

[root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' -f 1-4,6,7
root:x:0:0:/root:/bin/bash
bob:x:1000:1001:/home/bob:/bin/bash
user01:x:1001:1002:/home/user01:/bin/bash
排除所指定的欄位

在下面的程式碼中,列印所有欄位,除了 /etc/passwd檔案中的第二個欄位:

[root@localhost ~]# grep '/bin/bash' /etc/passwd|cut -d ':' --complement -f 2
root:0:0:root:/root:/bin/bash
bob:1000:1001::/home/bob:/bin/bash
user01:1001:1002::/home/user01:/bin/bash
如何指定一個輸出內容的分隔符

要指定輸出分隔符,請使用 --output-delimiter選項。輸入分隔符由 -d選項指定,預設情況下輸出分隔符與輸入分隔符相同。
先看一下沒有使用 --output-delimiter選項,是什麼樣子的:

[root@localhost ~]# cut -d ':' -f1,7 /etc/passwd|sort
adm:/sbin/nologin
avahi:/sbin/nologin
bin:/sbin/nologin
bob:/bin/bash
chrony:/sbin/nologin
daemon:/sbin/nologin
dbus:/sbin/nologin
ftp:/sbin/nologin
games:/sbin/nologin
grafana:/sbin/nologin
halt:/sbin/halt
lp:/sbin/nologin
mail:/sbin/nologin
nfsnobody:/sbin/nologin
nobody:/sbin/nologin
ntp:/sbin/nologin
operator:/sbin/nologin
…

現在使用 --output-delimiter選項,輸出分隔符使用’ ‘空格分隔,看一下是什麼樣子的:

[root@localhost ~]# cut -d ':' -f1,7 --output-delimiter=' ' /etc/passwd|sort
adm /sbin/nologin
avahi /sbin/nologin
bin /sbin/nologin
bob /bin/bash
chrony /sbin/nologin
daemon /sbin/nologin
dbus /sbin/nologin
ftp /sbin/nologin
games /sbin/nologin
grafana /sbin/nologin
halt /sbin/halt
lp /sbin/nologin
mail /sbin/nologin
nfsnobody /sbin/nologin
nobody /sbin/nologin
ntp /sbin/nologin
operator /sbin/nologin
總結

cut命令的一個限制是它不支援指定多個字元作為分隔符。多個空格被視為多個欄位分隔符,必須使用tr命令才能得到所需的輸出。

原文地址: https://www.linuxprobe.com/cut-example.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31559985/viewspace-2691311/,如需轉載,請註明出處,否則將追究法律責任。

相關文章