前言
Linux cut命令用于显示每行从开头算起 num1 到 num2 的文字。
1. 命令格式
1 2 3
| cut [选项] 文件 cat 文件 | cut [选项] 可以看到,cut命令既可以用文件作为参数也可以接受标准输入
|
2. 命令功能
1 2
| cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。 如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
|
3. 命令参数
1 2 3 4 5 6
| -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。 -c :以字符为单位进行分割。 -d :自定义分隔符,默认为制表符。 -f :与-d一起使用,指定显示哪个区域。 -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的 范围之内,该字符将被写出;否则,该字符将被排除
|
4.范例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| 实例一: cat b.txt abc abcd cat b.txt | cut -c 1 a a cat b.txt | cut -c 2 b b cat b.txt | cut -c 1-2 ab ab cat b.txt | cut -c 1-3 abc abc cat b.txt | cut -c 1-4 abc abcd cat b.txt | cut -c 1-5 abc abcd cat b.txt | cut -c 1-6 abc abcd
实例二: 1.按字符截取:(源字串:123:456:789) 截取第三个字符: echo 123:456:789 | cut -c3 3
截取第三到第六之间的字符: echo 123:456:789 | cut -c3-6 3:45
截取前三个字符 echo 123:456:789 | cut -c-3 123
提取第三个及其后面的所有字符 echo 123:456:789 | cut -c3- 3:456:789
提取第三到第六和第八到第十间的字符 echo 123:456:789 | cut -c3-6,8-10 3:45:78
|
5.小结
这个”-“比较有意思:
1 2 3
| 在inx前,表示从字串头开始; 放在inx后,表示从idx开始到字串末尾; 在两个idx之间,表示从idx1到idx2;
|
还有这个”,”可以连接我们选择的不连续的域:
1 2 3
| 比如要取第1,3,5,7个字符: echo 123:456:789 | cut -c1,3,5,7 1346
|
-b和-c:
1 2
| 对于-b选项应该和-c选项差不多吧,就是单位不同而已 (我没有像上面一样测试,只是我的理解)
|
-d和-f:
1 2 3 4 5
| 对于-d选项需要配合着-f选项使用; -d是用来指定分隔符; -f用来指定提取第几个域的内容; echo 123:456:789 | cut -d : -f 3 789
|
引用:
https://www.jb51.net/article/159083.htm
https://www.cnblogs.com/chenxiaomeng/p/10066821.html