以行为单位,选择性输出符合条件的内容到标准输出。cut是一个选取命令。
cut <选项> <file>
-b <输出范围>,--bytes=LIST:设置输出的字节数或范围
-c <输出范围>,--characters=LIST:设置输出的字符数或范围|
-d <分隔符>,--delimiter=DELIM:指定列(或字段)的分隔字符。默认分隔符是制表符Tab。只能和-f选项一起使用
-f <输出范围>,--fields=LIST:设置输出字段,默认字段分隔符是空格
-n:与命令选项-b一起使用,不分割宽字符
--complement:反向选择输出字节、字符或字段
-s,--only-delimited:若行没有分隔符,则不显示该行。此选项只能和-f选项一起使用
--output-delimiter=STRING:使用字符串作为输出分隔符,默认是输入分隔符
--help:显示帮助信息
--version:显示版本信息
注意:如果不指定文件,或者文件名为”-“,则cut从标准输入读取内容。
(1)以字符为单位输出指定范围的字符。 首先使用cat命令显示原文本文件内容如下:
hello world
i am lvlv
i like linux
使用cut命令选择第3到第5个字符输出:
[b3335@MIC test]$ cut -c 3-5 testfile
llo
am
lik
如果没有指定结束字符的位置,即cut -c 3- testfile
,则输出第三个字符到最后一个字符。同样我们可以使用字节为单位来进行,如果文本文件是单字节编码的字符,那么cut -b 3-5 testfile
等同于cut -c 3-5 testfile
。
(2)以字段为单位输出指定字段。 还是以上面的testfile为例,输出第二列和第三列的内容:
[b3335@MIC test]$ cut -d ' ' -f 2,3 lvlv
world
am lvlv
like linux
注意,因为第一行没有第三列,所以输出为空。
小结: cut主要用途在于将同一行的数据进行分解、切割,最常使用在分析一些数据或文本数据的时候。这是因为有时候我们会以某些字符作为分隔的字符,然后将数据加以切割,以取得我们所需的数据。在分析log的时候,我们会经常用的到,不过cut在处理多个分隔符(如空格)相连的数据时,会有点问题。
[1]man cut