Linux命令: cut

自闭症网瘾萝莉.ら 提交于 2019-11-27 15:39:13

作用:

  从名字看,就是cut掉每行中部分列,并默认打印在标准输出上。

  不带任何选项的cut命令,是把所有文件连接起来,一起输出到标准输出上。

  cut必须至少提供一个选项。

选项:

  -d, --delimiter=DELIM  指定域的分隔符。不指定,默认<TAB>。

  -f, -fn, 指定显示的列

  -b,-bn,指定显示的字节

  -c,-cn,指定显示的字符。

  -f、-b、-c 都是表示按什么作为一列的表示,其后的n,可以有这几种表示:

N-:从第N个字节、字符、字段到结尾;

N-M:从第N个字节、字符、字段到第M个(包括M在内)字节、字符、字段;

-M:从第1个字节、字符、字段到第M个(包括M在内)字节、字符、字段。

上面是记法,结合下面选项将摸个范围的字节、字符指定为字段:

   --complement ,表示指定条件列的其他所有列。是求补集的意思。

  --output-delimiter=string , 用这个参数指定的string,替换原文中的列分隔符来显示输出。

  -s, --only-delimited,不含列分隔符的行不打印。如a文件内容如下:

12345678
12345

[root@HOSTDJNKWCI master]# cut -d6 -f1 a   # 用6做列分隔符,而第二行没有6,仍打印出来。
12345
12345

[root@linux /]# cut -d6 -f1 -s a  # 加了-s后,则没6的行就不打印。
12345
[root@linux /]# cat a
12345678
12345

 

例子:

[root@linux /]# echo "中华人民共和国" | cut -c2,4,6    # 和cut -n -b2,4,6 等效。-n -b 就是不要按字节来分列。
华民和

[root@linux /]# echo "中华人民共和国" | cut -n -b2,4,6 --output-delimiter="-"  
华-民-和

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!