一、常用用法
1 | cut [--delimiter=DELIM] [--complement] [-c | -f] RANGE [FILE] |
二、含义与选项
2.1、含义
2.1.1、选择“-c”选项
未加“–complement”选项,表示打印“FILE”每行“RANGE”范围内的字符;加“–complement”选项,表示打印“FILE”每行“RANGE”范围外的字符,即是前者的补集。
2.1.2、选择“-f”选项
默认使用“TAB”字符作为字段分隔符,如果使用“–delimiter=DELIM”选项,那么使用“DELIM”字符作为字段分隔符。
未加“–complement”选项,表示打印“FILE”每行“RANGE”范围内的字段;加“–complement”选项,表示打印“FILE”每行“RANGE”范围外的字段,即是前者的补集。
2.2、选项表示的意思
“–delimiter=DELIM”:使用“DELIM”字符作为字段分隔符。需要注意的是,“DELIM”表示单字符,而不能是字符串。
“–complement”:表示打印“RANGE”范围外的内容。
“-c RANGE”:表示打印“RANGE”范围内的字符。
“-f RANGE”:表示打印“RANGE”范围内的字段。
三、“RANGE”构成
“RANGE”有以下4种基本构成元素。
1、N
表示第N个字符或者字段,从1开始计数。
2、N-
表示“第N个”到“行尾”范围内的字符或者字段,从1开始计数。
3、N-M
表示“第N个”到“第M个”范围内的字符或者字段,从1开始计数。
4、-M
表示“行首”到“第M个”范围内的字符或者字段,从1开始计数。
四、一些例子
以文件“a.txt”为实验素材,“a.txt”的内容如下:
1 | hello (前面是一个空格字符)world |
4.1、例子1
执行以下命令:
1 | cut -c 1-5 a.txt |
得到如图1所示结果。
图1
4.2、例子2
执行以下命令:
1 | cut -f 1 a.txt |
得到如图2所示结果,注意默认是以“TAB”字符作为字段分隔符,只有第二行存在一个“TAB”字符。
图2
4.3、例子3
执行以下命令:
1 | cut --delimiter=' ' -f 1 a.txt |
得到如图3所示结果,注意现在是以“空格”字符作为字段分隔符,第一行和第三行都存在着“空格”字符。
图3
4.4、例子4
执行以下命令:
1 | cut --complement -c 1-5 a.txt |
得到如图4所示结果。
图4