cut命令

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
原文地址:https://www.cnblogs.com/ggzhangxiaochao/p/13385290.html