cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
-b:仅显示行中指定直接范围的内容; -c:仅显示行中指定范围的字符; -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容; -n:与“-b”选项连用,不分割多字节字符; --complement:补足被选择的字节、字符或字段; --out-delimiter=<字段分隔符>:指定输出内容是的字段分割符; --help:显示指令的帮助信息; --version:显示指令的版本信息。
使用 -f 选项提取指定字段: cut -f 1 test.txt #取第一列 cut -f2,3 test.txt #取第2,3列 --complement 选项提取指定字段之外的列(打印除了第二列之外的列): cut -f2 --complement test.txt 使用 -d 选项指定字段分隔符: cut -f2 -d";" test2.txt
cut命令可以将一串字符作为列来显示,字符字段的记法: N-:从第N个字节、字符、字段到结尾; N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段; -M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。 上面是记法,结合下面选项将摸个范围的字节、字符指定为字段: -b 表示字节; -c 表示字符; -f 表示定义字段。
打印第1个到第3个字符: cut -c1-3 test.txt 打印前2个字符: cut -c-2 test.txt 打印从第5个字符开始到结尾: cut -c5- test.txt 截取文件的第2列和第4列 cut -f2,4 filename 去文件除第3列的所有列 cut -f3 --complement filename -d 指定定界符 cut -f2 -d";" filename - cut 取的范围 * N- 第N个字段到结尾 * -M 第1个字段为M * N-M N到M个字段 - cut 取的单位 * -b 以字节为单位 * -c 以字符为单位 * -f 以字段为单位(使用定界符) 示例 cut -c1-5 file //打印第一到5个字符 cut -c-2 file //打印前2个字符 截取文本的第5到第7列 $echo string | cut -c5-7