cut命令的作用是實現文本內容的切割,原內容或者原文件不受影響。
cut小練習:
2016年 07月 21日 星期四 23:19:56 CST
1:以字節為為單位進行切割 -b
date | cut -b 1-4
顯示結果為 2016
date | cut -b 1-5
顯示結果依然為2016
date | cut -b 1-6
顯示結果依然為2016
date | cut -b 1-7
顯示結果為2017年
所以得出一個漢字占據三個字符
注意,當時用-b提取中文數據時候,可能會出現亂碼的問題
對比如下
[root@localhost ~]# date | cut -b 7
′
[root@localhost ~]# date | cut -nb 7
年
當遇到多字節字符時,可以使用-n選項,-n用于告訴cut不要將多字節字符拆開。
2:以字符為單位進行切割-c
date | cut -c 1-4
顯示結果為2016
date | cut -c 1-5
顯示結果為2016年
則一個漢字為一個字符
3:以自定義分隔符進行切割-d
cat /etc/passwd | head -n 5 | cut -d: -f 1,3,5
顯示結果為
root:0:root
bin:1:bin
daemon:2:daemon
adm:3:adm
lp:4:lp
*當文件中存在制表符和空格符時候,怎么區分
首先查看cut.txt的文件內容
[root@localhost test]# cat cut.txt
this is tab finish init
this is several space finish
[root@localhost test]# sed -n l cut.txt
this is tab\tfinish init$
this is several space finish$
可以看出第一行tab后面\t,這就是制表符,而空格符依然以空格顯示,用cut命令操作看看有什么不同
[root@localhost test]# cat cut.txt | cut -d ' ' -f 3
tab finish
several
結果顯示雖然是空格,但是卻是制表符顯示的結果,換個方式顯示
[root@localhost test]# cat cut.txt | cut -d ' ' -f -3
this is tab finish
this is several
其中tab finish中間是用制表符隔開的
-3代表from first to M'th (included) byte, character or field 從第一個到3中間中間所有符合的。
原創文章,作者:我的滑板鞋,如若轉載,請注明出處:http://www.www58058.com/25141