cut 显示文本行特定内容参数

功能:

cut是以每一行为一个处理对象的 ,cut命令用来显示行中的指定部分,删除文件中指
定字段。cut经常用来显示文件的内容

格式:

cut(选项)(参数) 

选项:

-b  字节(bytes) 

[root@localhost ~]# who  //原样输出展示
root     pts/1        2020-01-06 18:52 (221.221.159.88)
[root@localhost ~]# who|cut -b 3 //第三个字节
o
[root@localhost ~]# who|cut -b 5 //输出的应该是空格

[root@localhost ~]# who|cut -b 1-3,10 //取1~3和第十个字节 !注意 1-3和10不可以互换位置 一定要按字节的顺序来
roop   

[root@localhost ~]# who|cut -b -3 //前三个字节
roo
[root@localhost ~]# who|cut -b 3-  //三个字节以后的所有
ot pts/1 2020-01-06 18:52 (221.221.159.88)

  

-c  字符(characters) 

//-c 和-d的区别体现在-c以字符为单位输出
如果是中文的话
-c会输出一整个中文
-b只会以字节(8位二进制位)来计算 输出的中文就是乱码
解决-b乱码:可以用 -bn -n用于告诉cut不要将多字节字符拆开

  

-f  域(fields) -d 设置分隔符

//具体的说就是设置“间隔符” 再设置“提取第几个域”
[root@localhost ~]# cat /etc/passwd|head -5
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

[root@localhost ~]# cat /etc/passwd|head -5|cut -d : -f 1
root
bin
daemon
adm
lp
[root@localhost ~]# cat /etc/passwd|head -5|cut -d : -f 2
x
x
x
x
x

  

扫描二维码关注公众号,回复: 8441344 查看本文章

附加:关于cut的一个小bug

[root@localhost ~]# ps
PID TTY TIME CMD
4323 pts/1 00:00:00 bash
4716 pts/1 00:00:00 ps
[root@localhost ~]# ps|cut -b3
P
3
7
7

原因:ps|cut会自身创建一个进程,所以当ps时也会提取出这个进程,然后通过管道输出到cut,所以cut截取后,就多出了一行,之所以会重复上一行内容,是由于我们恰巧取到了和上一行内容相同的字符而已。

[root@localhost ~]# ps|cut -b 5
D
3
5
6 

试了一下 还是有不一样的 哈哈哈哈

  

猜你喜欢

转载自www.cnblogs.com/gaiting/p/12154817.html
cut