命令格式:

cut -d 'delimiter' -f fields -b [range like 1,2] -c [range like 2,3]   file

直接举例比较容易明白

1 找出某个用户的uid和gid[liuliancao@liuliancao exp]$ sudo grep liuliancao /etc/passwd|cut -d: -f 3,4 [sudo] password for liuliancao: 1000:1000结论:-d 指delimiter,分隔符的意思,在cut中默认是tab2 取出1-5个characters的内容[liuliancao@liuliancao exp]$ cat t1.txt | cut -c 1-5helloboth if thi wil结论:-c 可以指定捕获的内容大小,指定character数目3 取出指定字节的内容[liuliancao@liuliancao exp]$ cat t1.txt 我很好,你好吗现在是10点now it is 10 a.m.[liuliancao@liuliancao exp]$ cat t1.txt | cut -b 1-3我现now[liuliancao@liuliancao exp]$ echo $LANGen_US.UTF-8[liuliancao@liuliancao exp]$ cat t1.txt | cut -c 1-3我很好现在是now结论:-b 指定bytes,汉字在我的系统UTF8中是三个字节,也是一个字符百度了一下:UNICODE是对ASCII和ISO-LATIN1的扩展,增加了一个高位,所以可以支持很多语种,这时汉字是两个字节,utf8对UNICODE进行了重新编码,使得编码后ASCLL码与以前一样,但增加了一定不确定性4 对于分隔符不足的情况[liuliancao@liuliancao exp]$ cat t4.txt wo我很好! ni好你号码  this What is your favoritennnn[liuliancao@liuliancao exp]$ cat t4.txt | cut -f2,3 -d' 'ni好 thisis yournnnn[liuliancao@liuliancao exp]$ cat t4.txt | cut -f2,3 -d' ' -sni好 thisis your结论:默认情况下,如果分隔符号指定,切掉的是尽可能最大的匹配,如果切1-5,那么在以-d指定的分隔符号的1-5个fields都会显示,如果只有三个也会显示,而没有分隔符号默认也会显示而-s则使得没有分隔符号的情况下不显示 -s, --only-delimited              do not print lines not containing delimiters