linux命令--cut的使用
cut 是一个选取命令,将一段数据进行分析,取得我们想要的
语法:
cut (参数)(文件)
常用参数:
-b:仅显示行中指定直接范围的内容;(以字节为单位分割) -c:仅显示行中指定范围的字符;(以字符为单位分割) -d:指定字段的分隔符,默认的字段分隔符为“TAB”; -f:显示指定字段的内容; (以字段为分隔符) -n:与“-b”选项连用,不分割多字节字符; --complement:补足被选择的字节、字符或字段; --out-delimiter=<字段分隔符>:指定输出内容是的字段分割符; --help:显示指令的帮助信息; --version:显示指令的版本信息。
cut命令主要是接受三个定位方法:
第一,字节(bytes),用选项-b
第二,字符(characters),用选项-c
第三,域(fields),用选项-f
1、以“字节”定位
[root@xiaojin oldboy]# who
root pts/1 2019-01-08 20:27 (10.0.0.1)
[root@xiaojin oldboy]# who|cut -b 3
o
如果“字节”定位中,我想提取第3,第4、第5和第8个字节,怎么办?
-b支持形如3-5的写法,而且多个定位之间用逗号隔开就成了。
[root@xiaojin oldboy]# who
root pts/1 2019-01-08 20:27 (10.0.0.1)
[root@xiaojin oldboy]# who|cut -b 3-5,10
ot p
注意:cut命令如果使用了-b选项,那么执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取。可不能颠倒定位的顺序哦。如下:
[root@xiaojin oldboy]# who|cut -b 3-5,10
ot p
[root@xiaojin oldboy]# ^C
[root@xiaojin oldboy]# who|cut -b 10,3-5
ot p
还有哪些类似-3,3-这样的写法,如下
[root@xiaojin oldboy]# who|cut -b -3
roo
[root@xiaojin oldboy]# who|cut -b 3-
ot pts/1 2019-01-08 20:27 (10.0.0.1)
-3表示从第一个字节到第三个字节,而3-表示从第三个字节到行尾。
如果我执行who|cut -b -3,3-,会输出整行,不会出现连续两个重叠的c的。如下:
[root@xiaojin oldboy]# who|cut -b -3,3-
root pts/1 2019-01-08 20:27 (10.0.0.1)
2、以字符为定位
提取第3,第4,第5和第8个字符:
[rocrocket@rocrocket programming]$ cat cut_ch.txt
星期一
星期二
星期三
星期四
[rocrocket@rocrocket programming]$ cut -b 3 cut_ch.txt
�
�
�
�
[rocrocket@rocrocket programming]$ cut -c 3 cut_ch.txt
一
二
三
四
看到了吧,用-c则会以字符为单位,输出正常;而-b只会傻傻的以字节(8位二进制位)来计算,输出就是乱码。
当遇到多字节字符时,可以使用-n选项,-n用于告诉cut不要将多字节字符拆开。如下:
[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -b 2
�
�
�
�
[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -nb 2
[rocrocket@rocrocket programming]$ cat cut_ch.txt |cut -nb 1,2,3
星
星
星
星
3、以字段为定位
测试文件
cat >>test01.txt<<EOF
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98
EOF
-f 选项提取指定字段,一半配合-d使用
[root@xiaojin oldboy]# cut -d " " -f 2 test01.txt
Name
tom
jack
alex
[root@xiaojin oldboy]# cut -d " " -f 2,3 test01.txt
Name Mark
tom 69
jack 71
alex 68
与-b,-c的区别
[root@xiaojin oldboy]# cut -c 1 test01.txt
N
0
0
0
[root@xiaojin oldboy]# cut -b 2 test01.txt
o
1
2
3
--complement 选项提取指定字段之外的列(打印除了第二列之外的列):
[root@xiaojin oldboy]# cut -d " " -f 2 --complement test01.txt
No Mark Percent
01 69 91
02 71 87
03 68 98
[root@xiaojin oldboy]# cut -d " " -f 2 test01.txt
Name
tom
jack
alex
[root@xiaojin oldboy]# cat test01.txt
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98
4、-d 指定分隔符
[root@xiaojin oldboy]# cut -d " " -f 2 test01.txt
Name
tom
jack
alex
[root@xiaojin oldboy]# cat test01.txt
No Name Mark Percent
01 tom 69 91
02 jack 71 87
03 alex 68 98
linux命令--cut的使用的更多相关文章
- Linux命令-cut篇
Cut 命令是常用的 Linux 命令,在这里总结一下平时常用的参数和用法,方便查证. 常用参数: -b:以字节为单位进行分割: -c:以字符为单位进行分割: -d:自定义分割符进行分割,默认为制表符 ...
- Linux命令-cut
cut命令用于通过列来提取文本字符 格式:cut [参数] 文本 将/etc/paswd文件以:分割(-d:),获取第七列的内容(-f1) [root@localhost test]# cut -d: ...
- Linux命令cut
原文 cut 文件内容查看 显示行中的指定部分,删除文件中指定字段 显示文件的内容,类似于下的type命令. 说明 该命令有两项功能,其一是用来显示文件的内容,它依次读取由参数file所指明的文件,将 ...
- linux 命令 — cut
cut 以列的方式格式化输出 依赖定界符 cut -f field_list filename 以默认定界符(tab,制表符)分割文件的列,输出指定的列field_list,field_list由列号 ...
- Linux 之Cut命令详解
摘自:http://blog.csdn.net/zsf8701/article/details/7718680 Linux 之Cut命令详解 cut是一个选取命令,就是将一段数据经过分析,取出我们想要 ...
- Linux管线命令 - cut,grep,sort,uniq,wc,tee,tr,col,join,paste,expand,split,xargs
在每个管线后面接的第一个数据必定是『命令』喔!而且这个命令必须要能够接受 standard input 的数据才行,这样的命令才可以是为『管线命令』,例如 less, more, head, tail ...
- [转帖]Linux:cut命令详解
Linux:cut命令详解 https://www.cnblogs.com/Spiro-K/p/6361646.html cut -f cut -f -d cut -c1- 这三个命令好像最常见, 记 ...
- linux中cut命令与tr命令
目录 一:linux中cut命令 1.cut 命令作用 2.参数 3.参数案例解析: 二:tr命令 1.tr命令作用 2.tr命令格式 3.tr命令参数 4.案例解析: 一:linux中cut命令 1 ...
- linux shell cut 命令
cut命令 cut命令用于从文件或者标准输入中读取内容并截取每一行的特定部分并送到标准输出. 截取的方式有三种:一是按照字符位置,二是按照字节位置,三是使用一个分隔符将一行分割成多个field,并提取 ...
随机推荐
- Python基础:二、python介绍
Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言 python的创始人为GuidovanRossum.1989年圣诞节期间,Guido再阿姆斯特丹未来打发时间,决心开发一个新的脚本解释程序 ...
- Go 包管理工具--glide
网上有一篇解释glide比较好的文章:https://my.oschina.net/u/553243/blog/1475626 在命令行中输入glide $glide NAME: glide - Ve ...
- Google - Largest Sum Submatrix
Given an NxN matrix of positive and negative integers, write code to find the submatrix with the lar ...
- C++中的内部类
1.内部类的概念 如果一个类定义在另一个类的内部,这个内部类就叫做内部类.注意此时这个内部类是一个独立的类,它不属于外部类,更不能通过外部类的对象去调用内部类.外部类对内部类没有任何优越的访问权限. ...
- 创建一个dynamics 365 CRM online plugin (十) - Isolation mode or trust mode
Isolation Mode 也被称作为Plugin Trust CRM里面有两种plugin trust / isolation mode 1. Full Trust 只在OP系统中可使用,没有限制 ...
- obs源码uml
- 浏览器输入url回车后,会发生什么?
通常我们想访问某一个网址,我们会在浏览器中输入它的域名,然后点击回车进行跳转,这样就可以进到网站的主页,看似简单的两步,其实背后都需要大量的代码在运行,支持,才能完成!那浏览器到底都做了哪些事呢? 一 ...
- win10自动更新后SQLServer无法启动的问题排查
今天中午windows提示更新系统补丁并重启后发现,本地的SQL Server服务器没有正常启动,手工启动sqlserver也失败了,报错:找不到ERRORLOG文件及相应目录. 很是奇怪.强制创建该 ...
- pascalcontext-fcn全卷积网络结构理解
一.说明 fcn的开源代码:https://github.com/shelhamer/fcn.berkeleyvision.org 论文地址:fully convolutional networks ...
- sql语句可以截取指定字段后面的字符串
select id,substring(Memo,charindex('数量',Memo)+3,len(Memo)-charindex('数量',Memo)) from trace where Mem ...