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,并提取 ...
随机推荐
- vue day5 分页控件
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- JVM垃圾回收机制之对象回收算法
前言 在前面的文章中,介绍了JVM内存模型分为:堆区.虚拟机栈.方法区.本地方法区和程序计数器,其中堆区是JVM中最大的一块内存区域,在Java中的所有对象实例都保存在此区域,它能被所有线程共享. 在 ...
- 天融信防火墙NGFW4000,无法进入web管理和community属性查看
1.system config save //配置保存 2.system config reset //清除配置(恢复出厂设置) 3.pf service add name webui area a ...
- [Python]_ELVE_centos7安装Python3.7.1与Python2共存
注:该博客转载至PengYunjing博客,加以改动. #0x01 安装依赖环境 yum -y install zlib-devel bzip2-devel openssl-devel ncurses ...
- Developing avb
ai automake ai libtool ai pkg-config autogen ai libgstreamer1.0-0 ai libgstreamer1.0-dev ai chec ...
- 集成direnv 与docker-compose 进行环境变量管理
direnv 是一个不错的换将变量管理工具,同时日常的开发测试中我们使用docker-compose 会比较多,一般我们的玩法是 可以再docker-compose 中指定环境变量,可以通过envir ...
- JVM-crash查看hs_err_pid.log日志
参考链接: https://www.cnblogs.com/shiyangxt/archive/2009/01/06/1370627.html https://blog.csdn.net/chenss ...
- 【python】python打包生成的exe文件运行时提示缺少模块
事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyin ...
- php.ini文件下载
该php.ini文件为修改版,完美运行,存于360云盘.
- 使用iframe方式获得svg中的DOM元素,和svg 的 contentDocument 返回 null
碰到这个的相关问题,百度找了好久,找到了个解决方法,原址 https://segmentfault.com/q/1010000009001758 var iframe = document.getEl ...