要用到,来mark一下:
ubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt abcabcdubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1aaubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 2bbubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-2ababubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-3abcabcubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-4abcabcdubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-5abcabcdubuntu@VM-0-15-ubuntu:~/taoge$ cat b.txt | cut -c 1-6abcabcdubuntu@VM-0-15-ubuntu:~/taoge$
常常配合awk使用。
cut命令可以按字节,字符,域来截取字串,在某些情况下使用cut,确实很方便,下面简单总结下:
1.按字符截取:(源字串:123:456:789)
1>截取第三个字符:
echo 123:456:789 | cut -c33
2>截取第三到第六之间的字符:
echo 123:456:789 | cut -c3-63:45
3>截取前三个字符
echo 123:456:789 | cut -c-3123
4>提取第三个及其后面的所有字符
echo 123:456:789 | cut -c3-3:456:789
5>提取第三到第六和第八到第十间的字符
echo 123:456:789 | cut -c3-6,8-103:45:78
小结下
>>这个“-”比较有意思,
在inx前,表示从字串投开始,
放在inx后,表示从idx开始到字串末尾,
在两个idx之间,表示从idx1到idx2。
>>还有这个“,”可以连接我们选择的不连续的域,
比如要取第1,3,5,7个字符:
echo 123:456:789 | cut -c1,3,5,71346
>>对于-b选项应该和-c选项差不多吧,就是单位不同而已(我没有像上面一样测试,只是我的理解)
对于-d选项需要配合着-f选项使用,-d是用来指定分隔符,-f用来指定提取第几个域的内容
echo 123:456:789 | cut -d : -f 3789
cut比较小巧,在适当的场景下使用效率很高,但是它不支持正则表达式,所以在复杂的情况下还是使用awk或者sed比较好!
[xxx@~]$ cut --helpUsage: 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
新闻热点
疑难解答