Linux学习笔记:cut命令
基础
功能:文件内容查看,显示行中指定部分,删除文件中指定字段。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命令的更多相关文章
- linux学习笔记——基础命令
最近看了一些老男孩linux运维视频,挺不错的,特此记录一下 linux组成 gun组件 shell等 linux内核 其他软件 linux主要内核: linux kernel2.2 linux ke ...
- Linux学习笔记--which命令(搜索命令的命令)
which.哪一个的意思.作用是从PATH环境变量指定的路径中,搜索命令所在位置及命令别名. which命令特点: 1) "which" 命令仅仅能查找系统命令.不能搜索普通文件. ...
- linux/linux学习笔记-常用命令(mooc)
一.命令基本格式及文件处理命令 1.linux命令格式 简化选项用-表示,完整选项用--表示 注:linux通过权限位第1位(-:文件 / d:目录 / l:链接文件 来区分文件类型) 2.linux ...
- Linux学习笔记--终端命令
~ 表示用户目录路径 ls 显示当前目录下的文件或目录 -l 列出文件纤细信息l(list) -a 列出当前目录下所有文件及目录, 包含隐藏的a(all) mkdir 创建目录 -p 创建目录 ...
- linux 学习笔记 rpm命令
软件包管理 用rpm命令来管理rpm 软件包 1>遵循GPL 规则 2>安装 foo-2.0-1.i386.rpm软件包 #rpm -ivh foo-1.0-1.i386.rpm 3> ...
- Linux学习笔记--ps命令(显示当前进程的命令)
ps:英文名process,进程的意思. 1. 命令格式: ps [选项] 2. 经常使用选项: "ps -a" 显示一个终端的全部进程.除了会话引线 "ps -e&qu ...
- Linux学习笔记--cp命令(复制)
cp:英文名copy,复制的意思. 1. 命令格式: cp [选项] 源文件或文件夹 目标文件或文件夹 cp [选项] 源文件1 源文件2 源文件3 ... 目标文件夹 2. 经常使用选项: &quo ...
- linux学习笔记-dump命令的使用
http://blog.chinaunix.net/uid-29797586-id-4458302.html
- linux 学习笔记 cpio命令
1 文件或目录打包 打包有如下多种情况 A>包含子目录打包 find /usr/lib -print /cpio -o >/uo/temp1.cpio 将/usr/lib目录下的文件与子目 ...
- linux学习笔记 ftp命令
ftp server with sites et up for downloaing files sometimes provides an anonymous ftp account 数据传输 ft ...
随机推荐
- C#-片段:外侧代码
ylbtech-C#-片段:外侧代码 1.返回顶部 ·#if #if true #endif ·#region #region MyRegion #endregion ·namespace names ...
- apk增加系统签名的方法
1.命令行方法给apk加系统签名在Linux环境:java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 ...
- redis修改持久化路径、日志路径、清缓存
redis修改持久化路径和日志路径 vim redis.conf logfile /data/redis_cache/logs/redis.log #日志路径 dir /data/redis_cach ...
- python下multiprocessing和gevent的组合使用
python下multiprocessing和gevent的组合使用 对于有些人来说Gevent和multiprocessing组合在一起使用算是个又高大上又奇葩的工作模式. Python的多线程受制 ...
- Expression: __acrt_first_block == header
File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp Line: 996 Expression: __acrt_first_block == ...
- mysqlcheck修复工具
mysqlcheck工具可以检查.修复.优化和分析MyISAM引擎的表,实际上是集成了Mysql中的check.repair.analyze.tmpimize的功能. mysqlcheck共军存在于m ...
- 123457123456#0#-----com.threeapp.renZheDadishu02-----忍者版打地鼠
com.threeapp.renZheDadishu02-----忍者版打地鼠
- demo rabbitmq topic(主题模式),fanout(广播模式),轮询分发,确认接收Ack处理
//durable = true 代表持久化 交换机和队列都要为true ,持久代表服务重启,没有处理的消息依然存在 //topic 根据不同的routkey 发送和接收信息 //fanout 广播模 ...
- 扩展Asp.Net Core中的IdentityUser类
虽然Asp.Net Core.Identity提供了IdentityUser类,但是在有些情况下我们需要一些额外的用户信息,比如性别,年龄等,这时候就需要来扩展IdentityUser类以达到我们的需 ...
- C语言位操作中指定的某一位数置0、置1、取反
一.指定的某一位数置1 宏 #define setbit(x,y) x|=(1<<y) 二.指定的某一位数置0 宏 #define clrbit(x,y) x&=~(1< ...