要用到,来mark一下:
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1 a a ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 2 b b ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-2 ab ab ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-3 abc abc ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-4 abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-5 abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-6 abc abcd ubuntu@VM-0-15-ubuntu:~/taoge$
常常配合awk使用。
cut命令可以按字节,字符,域来截取字串,在某些情况下使用cut,确实很方便,下面简单总结下:
1.按字符截取:(源字串:123:456:789)
1>截取第三个字符:
echo 123:456:789 | cut -c3 3
2>截取第三到第六之间的字符:
echo 123:456:789 | cut -c3-6 3:45
3>截取前三个字符
echo 123:456:789 | cut -c-3 123
4>提取第三个及其后面的所有字符
echo 123:456:789 | cut -c3- 3:456:789
5>提取第三到第六和第八到第十间的字符
echo 123:456:789 | cut -c3-6,8-10 3:45:78
小结下
>>这个“-”比较有意思,
在inx前,表示从字串投开始,
放在inx后,表示从idx开始到字串末尾,
在两个idx之间,表示从idx1到idx2。
>>还有这个“,”可以连接我们选择的不连续的域,
比如要取第1,3,5,7个字符:
echo 123:456:789 | cut -c1,3,5,7 1346
>>对于-b选项应该和-c选项差不多吧,就是单位不同而已(我没有像上面一样测试,只是我的理解)
对于-d选项需要配合着-f选项使用,-d是用来指定分隔符,-f用来指定提取第几个域的内容
echo 123:456:789 | cut -d : -f 3 789
cut比较小巧,在适当的场景下使用效率很高,但是它不支持正则表达式,所以在复杂的情况下还是使用awk或者sed比较好!
[xxx@~]$ cut --help
Usage: cut OPTION... [FILE]...
Print selected parts of lines from each FILE to standard output.
Mandatory arguments to long options are mandatory for short options too.
-b, --bytes=LIST select only these bytes
-c, --characters=LIST select only these characters
-d, --delimiter=DELIM use DELIM instead of TAB for field delimiter
-f, --fields=LIST select only these fields; also print any line
that contains no delimiter character, unless
the -s option is specified
-n (ignored)
--complement complement the set of selected bytes, characters
or fields
-s, --only-delimited do not print lines not containing delimiters
--output-delimiter=STRING use STRING as the output delimiter
the default is to use the input delimiter
--help display this help and exit
--version output version information and exit










