栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux 命令:cut 详解

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux 命令:cut 详解

cut 命令的功能是对文件中的字段进行截取。

用法:cut OPTION... [FILE]...

选项:

-b, --bytes=LIST                以字节为单位截取

-c, --characters=LIST         以字符为单位截取

-d, --delimiter=DELIM         定义字段分隔符

-f, --fields=LIST                 只保留指定的字段,如果不指定 -s 选项,也打印任何不包含分                                           隔符的行

-n                                       和 -b 一起使用,不拆分多字节字符

--complement                  补充所选字节、字符或字段的集合

-s, --only-delimited              不打印没有字段分隔符的行

--output-delimiter=STRING 使用 STRING 作为输出分隔符 默认是使用输入分隔符

-z, --zero-terminated           去掉行分隔符,默认是换行符

--help                                   打印帮助文档

--version                               打印版本信息

在使用 -b -c -f 之一时,LIST是一个范围,或者是用逗号分隔的多个范围:

N        第 N 个字节、字符、字段,从 1 开始数

N-       从第 N 个字节、字符、字段到行末

N-M    从第 N 到 M (包括) 个字节、字符、字段

-M       从第 1 到 M (包括) 个字节、字符、字段 

使用示例:

我们对储存用户信息的文件/etc/passwd 进行查看:

[root@server ~]# head -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

对英文字母进行操作时,-b 和 -c 的效果一致,因为一个英文字母占一个字节:

# 第3个字节
[root@server ~]# head -5 /etc/passwd | cut -b3
o
n
e
m
:

# 第5,6字节
[root@server ~]# head -5 /etc/passwd | cut -b5,6
:x
x:
on
x:
:4

# 第3个字符
[root@server ~]# head -5 /etc/passwd | cut -c3
o
n
e
m
:

# 第5,6字符
[root@server ~]# head -5 /etc/passwd | cut -c5,6
:x
x:
on
x:
:4

-f的使用: 

# 未指定字段分隔符,默认为空格,所以输出了整行
[root@server ~]# head -5 /etc/passwd | cut -f1
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

# 第1字段
[root@server ~]# head -5 /etc/passwd | cut -d":" -f1
root
bin
daemon
adm
lp

# 从开头到第5字段
[root@server ~]# head -5 /etc/passwd | cut -d":" -f-5
root:x:0:0:root
bin:x:1:1:bin
daemon:x:2:2:daemon
adm:x:3:4:adm
lp:x:4:7:lp

# 从第1字段到第4字段
[root@server ~]# head -5 /etc/passwd | cut -d":" -f1-4
root:x:0:0
bin:x:1:1
daemon:x:2:2
adm:x:3:4
lp:x:4:7

测试一个包含汉字的文件 :

[root@server ~]# cat hanzi
汉堡
薯条
可乐
鸡块
奶昔

# 使用字节模式,显示乱码
[root@server ~]# cut -b1 hanzi
�
�
�
�
�

# 改为字符模式,正常输出
[root@server ~]# cut -c1 hanzi
汉
薯
可
鸡
奶
[root@server ~]# cut -c2 hanzi
堡
条
乐
块
昔

# 也可以使用 -nb, 功能是将多字节的字符(比如汉字)看成整体
[root@server ~]# cut -nb1 hanzi
汉
薯
可
鸡
奶
[root@server ~]# cut -nb2 hanzi
堡
条
乐
块
昔
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/731139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号