要用到,來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
新聞熱點
疑難解答