基础

功能:文件内容查看,显示行中指定部分,删除文件中指定字段。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. ubuntu14.04 rabbitmq重启丢失用户信息

    一.rabbitmq数据是根据当前hostname作为node节点作为数据名保存 二.添加rabbimq用户sudo rabbitmqctl add_user tlwlmy tlwlmysudo ra ...

  2. linux ubuntu 如何解决warning: no newline at end of file?

    今天写了一段代码, 是在Windows下编辑的, 保存后放在linux系统下编译. gcc和cc都产生以下的警告: a.h:1:2: warning: no newline at end of fil ...

  3. python 中 dict 的另一种用法

    python 中 dic另一种用法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 dict={} dict.get(k1,Non ...

  4. PAT 甲级 1032 Sharing (25 分)(结构体模拟链表,结构体的赋值是深拷贝)

    1032 Sharing (25 分)   To store English words, one method is to use linked lists and store a word let ...

  5. python检测音频中的静音

    #-*- coding: utf-8 -*- import os import wave from time import sleep import numpy as np SUCCESS = 0 F ...

  6. Java多线程——线程池使用示例

    示例代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public cla ...

  7. 查询 ip占用导致ip不通的 问题 查IP对应的mac地址

    IP冲突,  同一个IP配到了多余1台的机器上 ,导致IP 不通的情况,此时需要查询 都有哪台机器配置了这个IP,用 arping 命令, 具体命令 类似于 ping ,直接 arping + 目标地 ...

  8. 【C/C++开发】C++实现简单的线程类

    C++封装一个简单的线程类 多线程编程简介: 大家在编程时,经常需要在程序中启动一个或多个线程来处理任务,而如果每次都是去调用系统创建线程的API函数来创建,代码量虽不多,但线程的创建和业务逻辑代码就 ...

  9. 【ARM-Linux开发】Linux查看设备驱动

    驱动操作命令: insmod / modprobe 加载驱动 rmmod                     卸载驱动 lsmod                       查看系统中所有已经被 ...

  10. JS选中和取消选中checkbox

    document.getElementsByTagName("input")[0].checked = 0;//不选择 document.getElementsByTagName( ...