目錄
一、基本概念
二、語法格式和引數
2.1 語法格式
2.2 引數
三、實體講解
3.1 -d 和 -f 引數
3.2 -b 引數
3.3 -c 引數
四、總結
五、參考文獻
cut 是 Linux 文本處理命令中比較簡單的命令,沒有復雜的引數,下面結合實體進行介紹,
一、基本概念
cut 命令將輸入內容的每一行剪切位元組、字符和欄位,并將這些位元組、字符和欄位顯示到標準輸出,其中,輸入內容可以從標準輸入或檔案中獲取,
二、語法格式和引數
2.1 語法格式
cut [選項]... [檔案]...
2.2 引數
-b :以位元組為單位進行分割;
-c : 以字符為單位進行分割;
-d 分隔符 : 使用指定分隔符代替制表符作為劃分符,默認使用制表符;
-f :選擇指定的段,如果選擇多個段使用 “,” 分隔;
其中,-b/-c/-f 后跟選取的位元組/字符/片段,num 從 1 開始,格式如下:
num : 選取第num個位元組/字符/片段;
num1,num2,num3 : 選取第num1,num2,num3的位元組/字符/片段;
num- : 選取第num個位元組/字符/片段一直到結尾;
num1-num2 : 選取第num1到num2的位元組/字符/片段;
-num : 選取第1個到num個的位元組/字符/片段;
常用的引數為 -d 和 -f ,
三、實體講解
實體將通過 /etc/passwd 檔案前10 行進行講解,如下所示:
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
3.1 -d 和 -f 引數
情況一:選取第num片段
選取以 “:” 為分隔的第1個片段,如下所示:
[root@localhost ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cut -d ":" -f 1 passwd
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
operator
[root@localhost ~]#
情況二:選取第num1,num2,num3 片段
選取以 “:” 為分隔中的第1片段和第3片段,如下所示:
[root@localhost ~]# cut -d ":" -f 1,3 passwd
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
[root@localhost ~]#
情況三、選取第num片段到結尾
選取以 “:” 為分隔中的第2片段到最后,如下所示:
[root@localhost ~]# cut -d ":" -f 2- passwd
x:0:0:root:/root:/bin/bash
x:1:1:bin:/bin:/sbin/nologin
x:2:2:daemon:/sbin:/sbin/nologin
x:3:4:adm:/var/adm:/sbin/nologin
x:4:7:lp:/var/spool/lpd:/sbin/nologin
x:5:0:sync:/sbin:/bin/sync
x:6:0:shutdown:/sbin:/sbin/shutdown
x:7:0:halt:/sbin:/sbin/halt
x:8:12:mail:/var/spool/mail:/sbin/nologin
x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]#
情況四、選取第num1片段到num2片段
選取以 “:” 為分隔中的第2片段和第4片段,如下所示:
[root@localhost ~]# cut -d ":" -f 2,4 passwd
x:0
x:1
x:2
x:4
x:7
x:0
x:0
x:0
x:12
x:0
[root@localhost ~]#
情況五、選取開始片段到num片段
選取以 “:” 為分隔中的第1片段到第5片段,如下所示:
[root@localhost ~]# cut -d ":" -f -5 passwd
root:x:0:0:root
bin:x:1:1:bin
daemon:x:2:2:daemon
adm:x:3:4:adm
lp:x:4:7:lp
sync:x:5:0:sync
shutdown:x:6:0:shutdown
halt:x:7:0:halt
mail:x:8:12:mail
operator:x:11:0:operator
[root@localhost ~]#
3.2 -b 引數
以 /etc/passwd 前 10 行為例,選取每行的第2個位元組,如下所示:
[root@localhost ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cut -b 2 passwd
o
i
a
d
p
y
h
a
a
p
[root@localhost ~]#
如上所示,每個位元組存盤一個字符,所以,列出的是每行的第2個字符,
選取每行的前4個位元組,如下所示:
[root@localhost ~]# cut -b -4 passwd
root
bin:
daem
adm:
lp:x
sync
shut
halt
mail
oper
[root@localhost ~]#
注意:當文本是中文的時候,可能會出現問題,如下所示:
[root@localhost ~]# cat chinese
飛流直下三千尺
疑是銀河落九天
[root@localhost ~]# cut -b 1 chinese
?
?
[root@localhost ~]# cut -b 1-3 chinese
飛
疑
[root@localhost ~]#
因為一個漢字使用三個位元組表示(采用UTF-8編碼),所以可能會出現亂碼的情況,
3.3 -c 引數
以 /etc/passwd 前 10 行為例,選取每行的第2個字符,如下所示:
[root@localhost ~]# cat passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@localhost ~]# cut -c 2 passwd
o
i
a
d
p
y
h
a
a
p
[root@localhost ~]#
選取每行的第1個字符到第4個字符,如下所示:
[root@localhost ~]# cut -c 1-4 passwd
root
bin:
daem
adm:
lp:x
sync
shut
halt
mail
oper
[root@localhost ~]#
選取指定字符的時候,中文也是可以的,如下所示:
[root@localhost ~]# cat chinese
飛流直下三千尺
疑是銀河落九天
[root@localhost ~]# cut -c 2 chinese
流
是
[root@localhost ~]# cut -c 1-3 chinese
飛流直
疑是銀
[root@localhost ~]#
四、總結
cut 最常使用的引數為 -d 和 -f 組合使用,其它引數使用較少,注意使用 -b 文本為中文的情況,使用不當可能會出現亂碼,在不使用輸出重定向的情況下,cut命令不會改變原檔案的內容,
五、參考文獻
[1] https://www.runoob.com/linux/linux-comm-cut.html
[2] https://man7.org/linux/man-pages/man1/cut.1.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246940.html
標籤:其他
