第十七章 按列切分文件字段工具: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

原文地址:http://blog.51cto.com/506554897/2146232

时间: 2024-11-09 10:23:12

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

Protobuf 文件生成工具 Prototool 命令详解

Protobuf 文件生成工具 Prototool 命令详解 简介 Prototool 是 Protobuf 文件的生成工具, 目前支持go, php, java, c#, object c 五种语言包的生成. 详情参考Github: https://github.com/uber/prototool docker 方式使用 prototool 工具 使用方式 // prototool 的使用 docker run --rm -v $(pwd):/work "uber/prototool&quo

linux文件操作之cut命令

一.cut命令 1,cut命令是对行来截取的命令.先来看man中cut命令参数       -b, --bytes=LIST               select only these bytes       -c, --characters=LIST               select only these characters       -d, --delimiter=DELIM               use DELIM instead of TAB forfield de

linux命令:find文件查找工具 locate命令查找

     find命令简介: 实时.精确.支持众多查找标准 遍历指定目录中的所有文件完成查找,速度慢: 1.命令格式: locate filename 直接跟需要查找的文件  eg locate passwd  系统文件数据库中所有 包含passwd的文件. find 查找路径 查找标准 查找到以后的处理动作  查找路径:默认为当前目录  查找标准:默认为指定路径下的所有文件  处理动作:默认为显示到屏幕上 eg:find /etc -name passwd  表示在etc目录下查找名字为pas

我的学习之路_第十七章_JavaUtils

[BeanUtils工具类] javaBaen : Java和数据库所对应关系实体类 表(Utils)-->类(User) 表中的列-->类中字段(属性) 表中的行-->根据类创建的对象 javaBean包含: 1.私有的成员变量 2.公共的getter/setter方法 3.空参数构造方法 4.toSting方法 5.实现序列化接口 BeanUtils工具类的三个方法:(工具类的方法都是静态的,直接类名.方法调用) 没有返回值 setProperty(Object obj ,Strin

Gradle 1.12 翻译——第十七章. 从 Gradle 中调用 Ant

有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com/1.12/userguide/userguide.html 本文原创,转载请注明出处:http://blog.csdn.net/maosidiaoxian/article/details/41204073 关于我对Gradle的翻译,以Github上的项目及http://gradledoc.qin

2017.2.16 开涛shiro教程-第十七章-OAuth2集成

原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介绍 (1)应用场景 很多开放平台,比如新浪微博开放平台,都在使用开发API接口供开发者使用.即带来了,第三方应用要到开放平台授权的问题.OAuth就是做这个的. 1 OAuth2官网:http://oauth.net/2/ 2 OAuth2协议:http://tools.ietf.org/html/

Gradle 1.12用户指南翻译——第四十七章. Build Init 插件

文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc 本文翻译所在分支: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/usergu

Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个

Gradle 1.12用户指南翻译——第二十七章. Ear 插件

其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Github上的地址: https://github.com/msdx/gradledoc/tree/1.12. 直接浏览双语版的文档请访问: http://gradledoc.qiniudn.com/1.12/userguide/userguide.html. 另外,Android 手机用户可通过我写的一个程序浏览文档,带缓存功能的,目前