本文主要记录一下Linux中cut命令的用法。

1. cut命令使用说明

Usage: cut OPTION... [FILE]...

cut命令用于选出FILE文件中每一行的某些部分,然后打印到标准输出。

cut命令支持的参数列表:

-b, --bytes=LIST 选择指定位置处(字节处)的数据

-c, --characters=LIST 选择指定字符处的数据

-d, --delimiter=DELIM 使用DELIM作为字段分隔符,而不是采用默认的TAB

-f, --fields=LIST 只选择指定field出的内容;同时也会打印出不包含delimiter的行(除非指定了-s选项)

-n 搭配-b选项使用: 表示不要分割多字节字符。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范

围之内,该字符将被写出;否则,该字符将被排除。

--complement 补全选中的字节、字符或域

-s, --only-delimited 不打印没有包含分界符的行

--output-delimiter=STRING 使用STRING作为输出分隔符

可以通过如下的方式来指定范围:

N 第N个字节/字符/field, 索引从1开始

N- 从第N个字节/字符/field开始,一直到行尾

N-M 从第N到第M(included)个字节/字符/field

-M 从第1到第M(included)字节/字符/field

2. 用法举例

有如下两个文件:

1) test1.txt

abcdefg

hijklmn

opqrst

uvwxyz

注意: 上面以TAB键分割,中间还有一行空行

2) test2.txt

星期一

星期二

星期三

星期四

星期五

星期六

星期天

1) 剪切单个字节

# cut -b 1 test1.txt

a

h

o

u

2) 剪切多个字节

//剪切1、3、5个字节

# cut -b 1,3,5 test1.txt

ac

hj

oq

uw

//剪切1-6字节

# cut -b 1-6 test1.txt

abcd e

hijk l

opqr s

uvwx y

3) 剪切字符

# cut -b 2 test2.txt

这里我们看到出现乱码,因为-b只是针对字节进行裁剪,对一个汉字进行字节裁剪,得到的结果必然是乱码,若想使用-b命令对字节进行裁剪,那么则需要使用-n选项,此选项的作用是取消分割多字节字符。

[root@localhost test]# cut -nb 3 test2.txt

4) 字符剪切(-c)

# cut -c 3 test2.txt

5) 剪切指定域

上面的-b、-c只是针对于格式固定的数据中剪切,但是对于一些格式不固定的,就没有办法获取到我们想要的数据,因此便有了-f域的概念

# cat /etc/passwd | head -n 3

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

将上面的第一个:前面的字符给剪切出来,那么我们就可以使用-d命令,指定其分割符为:然后再选取第一个域内的内容即可:

# cat /etc/passwd | head -n 3 | cut -d : -f 1

root

bin

daemon

# cat /etc/passwd | head -n 3 | cut -d : -f 7

/bin/bash

/sbin/nologin

/sbin/nologin

6) 剪切出IP地址

# ifconfig | grep -w "inet"

inet 172.18.0.1 netmask 255.255.0.0 broadcast 172.18.255.255

inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255

inet 192.168.69.128 netmask 255.255.255.0 broadcast 192.168.69.255

inet 127.0.0.1 netmask 255.0.0.0

inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255

# ifconfig | grep -w "inet" | tr -s ' ' | cut -d ' ' -f 3,5,7 --output-delimiter=" "

172.18.0.1 255.255.0.0 172.18.255.255

172.17.0.1 255.255.0.0 172.17.255.255

192.168.69.128 255.255.255.0 192.168.69.255

127.0.0.1 255.0.0.0

192.168.122.1 255.255.255.0 192.168.122.255

注意: 如果你的文件分隔符恐怕不止一个空格的话,此时若要用cut,则必须先用命令tr -s ' '将多余的空格剔除。

[参看]:

linux下的zz命令,linux中cut命令的用法相关推荐

  1. Linux下ps查找进程用kill终止命令

    Linux下ps查找进程用kill终止命令<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:offic ...

  2. Linux下必须知道的11个网络命令

    Linux下必须知道的11个网络命令 作者:佚名 字体:[增加 减小] 来源:互联网 时间:03-06 15:54:29 我要评论 无论你是要下载文件.诊断网络问题.管理网络接口,还是查看网络的统计数 ...

  3. Linux下常见文件解压方法及命令

    Linux下常见文件解压方法及命令时间:2007-01-08 18:34来源:CSDN作者:bitsCN编辑字体:[大 中 小]1.以.a为扩展名的文件: #tar xv file.a 2.以.z为扩 ...

  4. linux 让暂停的进程恢复,Linux 下进程的挂起和恢复命令

    本文给大家介绍进程的挂起及恢复命令,具体内容如下所示: #ctrl+z:挂起,程序放到后台,程序没有结束. #jobs:查看被挂起的程序工作号 恢复进程执行时,有两种选择:fg命令将挂起的作业放回到前 ...

  5. linux 骇客帝国脚本,Linux下,那些让人惊叹的命令执行效果

    Linux下,那些让人惊叹的命令执行效果 之前介绍过linux常用命令一文,接下来我们来一起学习一下linux里好玩的命令作者:luckyw2016-12-08 18:23 之前介绍过linux常用命 ...

  6. Linux下 “>/dev/null 2>1 “ 命令学习

    Linux下 ">/dev/null 2>&1 " 命令学习 参考链接: 1.https://blog.csdn.net/sunrier/article/det ...

  7. Linux和Windows命令行中使用命令的输出(删除几天前的日志)

    如果我们需要在命令行中使用命令的结果,需要怎么做? 很常见的一种情况是我们需要当前工作目录的路径.在Linux下,可用这样: $ echo `pwd` $ ./mdu `pwd` 在Windows下面 ...

  8. linux查内核参数命令,linux 下查看cpu位数 内核等参数命令

    linux 下查看cpu位数 内核等参数命令. # uname -a Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i6 ...

  9. Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版

    Redis第二集:Linux下安装Redis和测试,包含命令代码和问题处理办法,超详细版 一.资源 Linux下的Redis的下载地址 二.安装与测试 上传至自己的Linux平台 解压安装包 tar ...

最新文章

  1. mysql 拼接sql批量执行_Mysql 学习笔记之 SQL 执行过程
  2. Java机器学习库ML之九交叉验证法(Cross Validation)
  3. batchsize一定是2的幂_支付接口的幂等性设计
  4. 直击!10万阿里小二的复工生活
  5. 传统程序员如何学习机器智能?阿里公开11个经典实战案例
  6. leetcode 413. Arithmetic Slices | 413. 等差数列划分(Java)
  7. c++中的类型转换--reinterpret_cast
  8. 八数码深度优先搜索_深度优先搜索和广度优先搜索
  9. Codeforces Round #320 (Div. 2) [Bayan Thanks-Round]
  10. idea 的精准搜索_intellij idea 的全局搜索快捷键方法
  11. 构造方法、toString、Object类、String类
  12. 用技术——设计模式22——行为型模式——模板模式——待补充
  13. Windows操作系统原理笔记
  14. 计算机硬盘有坏道,电脑硬盘有坏道怎么办?
  15. Django使用DRF + Simple JWT 完成小程序使用自定义用户的注册、登录和认证
  16. Boost.Geometry介绍
  17. CF1428F Fruit Sequences
  18. 考研路上的那些一战二战三战成功与失败的故事系列之一
  19. 【整理贴】企业网站系统大全,拿好不谢
  20. windows/linux 系统U盘制作系统盘(实战,简单)

热门文章

  1. ipython notebook主题背景颜色更改
  2. opencv_python 读取4通道png图片
  3. 从91移动应用发展趋势报告看国内应用现状
  4. 【160天】尚学堂高琪Java300集视频精华笔记(129)
  5. iOS开发 - OC - block的详解 - 深入篇
  6. TtinkPHP学习笔记之路由解析
  7. 游戏杆编程心得二:如何判断按钮的有效按下
  8. 用FDISK进行硬盘分区
  9. 用C#2.0实现网络蜘蛛(WebSpider)
  10. 用MATLAB读取MORSE、BPSK、QPSK信号的波形和频谱