第十七章 按列切分文件字段工具:cut命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十七章 按列切分文件字段工具:cut命令相关的知识,希望对你有一定的参考价值。

第十七章 按列切分文件字段工具:cut命令

名词解释

cut 命令 用来显示行中的指定部分内容,删除文件中指定字段。cut经常用来显示文件的内容,类似于type命令。

说明:该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将它们的内容输出到标准输出上;其二是连接两个或多个文件,如cut f1 f2 > f3 将把文件f1和f2的内容合并起来,然后通过输出重定向符“>”的作用,将他们放入文件f3中。

语法

cut (选项) (参数)

选项

  • -b :仅显示行中指定直接范围的内容;

  • -c :仅显示行中指定范围的字符;

  • -d :指定字段的分隔符,默认的字段分隔符为“TAB”;

  • -f :显示指定字段的内容;select only these fields; also print any line that contains no delimiter character, unless the -s option is specified

  • -n :与“-b”选项连用,不分隔多字节字符;

  • --complement :补足被选择的字节、字符或字段;

  • --out-delimiter=<字段分隔符>:指定输出内容是的字段分隔符;

  • -s, --only-delimited do not print lines not containing delimiters

    ? --output-delimiter=STRING use STRING as the output delimiter

  • --help:显示帮助信息

  • --version:显示版本信息

    ?

参数

文件:指定要进行内容过滤的文件。

实例

例如有一个学生报表信息,包含No、Name、Mark、Percent:

[[email protected] cut]# cat test.txt 
No      Name    Mark    Percent
01      tom     69      91
02      jack    71      87
03      abc     68      98

注意:这里的分隔符是一个tab,而不是空格;当然也可以用空格,那么在使用参数提取字段的时候需要指明字段分隔符是空格。

使用-f选项提取指定字段:

[[email protected] cut]# cut -f 1 test.txt 
No
01
02
03

使用-d选项 指定字段分隔符
如果分隔符是空格如下:
[[email protected] cut]# cat test2.txt 
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 abc 68 98

[[email protected] cut]# cut -d " " -f 1 test2.txt 
No
01
02
03

利用-f选项提取指定范围字段:

[[email protected] cut]# cut -f 1,2 test.txt             
No      Name
01      tom
02      jack
03      abc

--complement选项提取指定字段之外的列:

#打印除了第二列之外的列
[[email protected] cut]# cut -f 2 --complement test.txt 
No      Mark    Percent
01      69      91
02      71      87
03      68      98

指定字段的字符或者字节范围

cut命令 可以将一串字符作为列来显示,字符字段的记法:

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

上面是记法,结合下面选项:

  • -b :表示字节
  • -c :表示字符
  • -f :表示定义字段

示例

[[email protected] cut]# cat abc.txt 
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

打印第1个到第3个字符:

[[email protected] cut]# cut -c 1-3 abc.txt 
abc
abc
abc
abc
abc

打印前两个字符:

[[email protected] cut]# cut -c 1-2 abc.txt 
ab
ab
ab
ab
ab

或者
[[email protected] cut]# cut -c -2 abc.txt  
ab
ab
ab
ab
ab

打印从第5个字节到结尾:

[[email protected] cut]#  cut -c 5- abc.txt 
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz

以上是关于第十七章 按列切分文件字段工具:cut命令的主要内容,如果未能解决你的问题,请参考以下文章

读构建之法第十七章有感(作业四)

《Linux命令行与shell脚本编程大全》第十七章 创建函数

第十七章 springboot + devtools(热部署)

第十七章 使用DQL命令查询数据

第十七章(上):Katalon Mobile 测试工具介绍

第七章 linux文本处理工具