基础

功能:文件内容查看,显示行中指定部分,删除文件中指定字段。cut 命令用于显示每行从开头算起 a - b 的文字。

语法

cut [-bn] [file.txt]
cut [-c] [file.txt]
cut [-df] [file.txt]

使用说明

  • cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
  • 如果不指定 file 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。

参数

  • -b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
  • -c :以字符为单位进行分割。
  • -d :自定义分隔符,默认为制表符“TAB”。
  • -f :与-d一起使用,指定显示哪个区域。
  • -n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。
  • --complement:补足被选择的字节、字符或字段;
  • --out-delimiter=<字段分隔符>:指定输出内容是分割符;
  • --help:显示指令的帮助信息;
  • --version:显示指令的版本信息;

实例

实例一

当执行 who 命令时,会输出类似内容:

admin    pts/1        2019-11-12 12:49 (1.1.1.1)
user1 pts/4 2019-11-12 14:44 (2.2.2.2)
user2 pts/5 2019-11-12 14:50 (1.1.1.1)

如果我们想提取每一行的第3个字节,可以:

$ who | cut -b 3
m
e
e

实例二

例如有一个学生报表信息,包含No、Name、Mark、Percent共四列。

cat test.txt
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98

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

cut -d ' ' -f 2 test.txt
Name
tom
jack
alex ## 默认为制表符 此处是空格 应该增加-d指定分隔符 cut -d ' ' -f 2,3 test.txt
Name Mark
tom 69
jack 71
alex 68

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

cut -d ' ' -f 1 --complement test.txt
Name Mark Percent
tom 69 91
jack 71 87
alex 68 98

使用 -d 选项可以指定字段分隔符。

实例三

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

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

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

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

  • -b 表示字节;
  • -c 表示字符;
  • -f 表示定义字段。
cat test.txt
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz

打印第1-3个字符:

cut -c 1-3 test.txt
abc
abc
abc
abc
abc

打印前2个字符:

cut -c -2 test.txt
ab
ab
ab
ab
ab

打印从第5个字符开始到结尾:

cut -c 5- test.txt
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz

其他功能

  • 可以通过 cut file1 file2 > file3 连接2个或者多个文件,合并内容,并且重定向。
  • 当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。
  • 为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断键可以终止该命令的执行,并且返回Shell提示符状态。

参考链接1:Linux cut命令

参考链接2:Linux:cut命令详解

Linux学习笔记:cut命令的更多相关文章

  1. linux学习笔记——基础命令

    最近看了一些老男孩linux运维视频,挺不错的,特此记录一下 linux组成 gun组件 shell等 linux内核 其他软件 linux主要内核: linux kernel2.2 linux ke ...

  2. Linux学习笔记--which命令(搜索命令的命令)

    which.哪一个的意思.作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名. which命令特点: 1) "which" 命令仅仅能查找系统命令.不能搜索普通文件. ...

  3. linux/linux学习笔记-常用命令(mooc)

    一.命令基本格式及文件处理命令 1.linux命令格式 简化选项用-表示,完整选项用--表示 注:linux通过权限位第1位(-:文件 / d:目录 / l:链接文件 来区分文件类型) 2.linux ...

  4. Linux学习笔记--终端命令

    ~ 表示用户目录路径 ls   显示当前目录下的文件或目录 -l 列出文件纤细信息l(list) -a 列出当前目录下所有文件及目录, 包含隐藏的a(all) mkdir   创建目录 -p 创建目录 ...

  5. linux 学习笔记 rpm命令

    软件包管理 用rpm命令来管理rpm 软件包 1>遵循GPL 规则 2>安装 foo-2.0-1.i386.rpm软件包 #rpm -ivh foo-1.0-1.i386.rpm 3> ...

  6. Linux学习笔记--ps命令(显示当前进程的命令)

    ps:英文名process,进程的意思. 1. 命令格式: ps [选项] 2. 经常使用选项: "ps -a" 显示一个终端的全部进程.除了会话引线 "ps -e&qu ...

  7. Linux学习笔记--cp命令(复制)

    cp:英文名copy,复制的意思. 1. 命令格式: cp [选项] 源文件或文件夹 目标文件或文件夹 cp [选项] 源文件1 源文件2 源文件3 ... 目标文件夹 2. 经常使用选项: &quo ...

  8. linux学习笔记-dump命令的使用

    http://blog.chinaunix.net/uid-29797586-id-4458302.html

  9. linux 学习笔记 cpio命令

    1 文件或目录打包 打包有如下多种情况 A>包含子目录打包 find /usr/lib -print /cpio -o >/uo/temp1.cpio 将/usr/lib目录下的文件与子目 ...

  10. linux学习笔记 ftp命令

    ftp server with sites et up for downloaing files sometimes provides an anonymous ftp account 数据传输 ft ...

随机推荐

  1. Bitmap之getPixel和setPixel函数

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...

  2. python下multiprocessing和gevent的组合使用

    python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制 ...

  3. Build Telemetry for Distributed Services之OpenCensus:Tracing2(待续)

    part 1:Tracing1 Sampling Sampling Samplers Global sampler Per span sampler Rules References

  4. 关于jmeter+ant+jenkins性能自动化将测试结果文件jtl转换成html文件遇到的问题。

    1.ant自身缺陷,返回结果中有特殊字符,乱码字符,无法识别,jtl文件转换时报错. 2.jtl文件过大转换成html文件时出现内存溢出. 针对以上情况:可考虑使用BeenShell Sampler: ...

  5. 【AI教育】可以看看行业痛点分析

    http://www.woshipm.com/it/2801582.html 至于解决方案嘛,还在堆砌技术的阶段.

  6. ELK之elasticsearch插件导致filebeat没有上传日志至elasticsearch解决办法

    使用filebeat收集nginx发现日志为上传,elasticsearch没有日志,kibana没有展示 查看filebeat日志 日志目录为/var/log/filebeat  下面有多个日志文件 ...

  7. 如何去除PATH里的重复项并排序

    注意sed的用法,linux和Mac os不同,linux是Gnu的,Mac是BSD的 PATH排序去掉重复内容 mac和linux的换行符替换方法不一样,如下是Mac下的操作 export PATH ...

  8. Netty学习笔记(一)——nio基础

    Netty简单认识: 1) Netty 是由JBOSS 提供的一个Java 开源框架. 2) Netty 是一个异步的.基于事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络I0 程序. 3) ...

  9. jquery入口函数的测试

    /*编写一个自定义的jquery框架*/ (function (window,undefined) { var njquery=function (selector ,) { return new j ...

  10. sql query skill

    https://www.w3resource.com/sqlite/sqlite-select-query-statement.php /* SELECT ChipID FROM "tb_X ...