首页 > 其他 > 详细

cut命令

时间:2019-08-23 18:01:08      阅读:105      评论:0      收藏:0      [点我收藏+]

cut命令将行按指定的分隔符分割成多列。它的弱点在于不好处理多个分隔符重复的情况,因此经常结合tr的压缩功能。

注意:cut分隔符必须是单个字符

 

cut命令的常用选项

   -b:按字节筛选;
   -n:与"-b"选项连用,表示禁止将字节分割开来操作;
   -c:按字符筛选;
   -f:按字段筛选;
   -d:指定字段分隔符,不写-d时的默认字段分隔符为"TAB";因此只能和"-f"选项一起使用。
   -s:避免打印不包含分隔符的行;
   --complement:输出不符合要求的列(补集)
   --output-delimiter:指定输出分割符;默认为输入分隔符。

 

cut命令的简单案例

fie.txt

1  2   3
a  b   c
x,y,z

备注:第一列和第二列隔了2个空格,第二列和第三列隔了3个空格。

 

1、按字段筛选。输出第一列和第三列

执行:cut -f1,3 -d ‘ ‘ file.txt

输出:1 2

     a b
     x,y,z

遇到的问题:cut把2个空格当做了2个字符,输出第一列和第三列时,把第二个空格当做了第二列,导致实际情况和预计情况不符。

解决方法:使用tr命令压缩连续字符

执行:cat file.txt | tr -s " " | cut -d ‘ ‘ -f1,3

输出:1 3

        a c
        x,y,z

还有一个问题:x,y,z 不符合格式规范,怎么也输出了。

解决方法:使用-s选项。 -s:避免打印不包含分隔符的行。

执行:cat file.txt | tr -s " " | cut -d ‘ ‘ -f1,3 -s

输出:1 3

        a c

 

2、输出第一列和第三列外的所有列。

执行:cat file.txt | tr -s " " | cut -d ‘ ‘ -f1,3 -s --complement

输出:2

        b

 

3、

未完待续......

cut命令

原文:https://www.cnblogs.com/lfjn/p/11401277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!