linux命令之cut

版权声明:本文为博主原创文章,欢迎转载,转载请注明出处。期待与你共同进步。 https://blog.csdn.net/qq_37468954/article/details/82049749

cut 命令: 操作文件中每一行,并剪切出自己想要的,然后输出到标准输出(STDOUT)


语法

cut [选项] [文本文件名]
注:当选项后面不指定文件名时候,或者文件名为-,cut将读取标准输入(STDIN)。


选项

-d ( delimiter) 指定分割符
-f (fields) 指定选定的区域,配合分割符号使用,指定由分隔符分割的第几块,从1开始。
-b (bytes) 指定第几位
-c (characters)指定第几个字
-s 不加此参数将输出含分隔符的行,加了就不输出了。
其中,-b、-c 、-f 只能一次选择一个使用,并且,-d是配合-f使用的。下面是关于筛选数字的规则说明(跟在-f, -b, -c 后面的数字):
1) N : 只选择第N块或字节,或位。
2) N-M:从第N块或字节,或位到第M块,或字节,或位
3) N- :从第N块,字节,或位到末尾
4) -N :从开头到第N块,字节,或位。


下面的实例将以操作文本文件linuxXiaoNiu.data为例,文本文件内容如下:

c++:LINUX:C:MYSQL:GLIB:GSTREAMER
VIM:TMUX:GIT:SSH:SYNERY:OTHER
HELLO:EVERYONE:I:AM:LINUXXIAONIU
THANKS:FOR:ALL:READING!:HAPPY:ERERYDAY
THE END!

实例1

$cut -d ':' -f 3 linuxXiaoNiu.data
C
GIT
I
ALL
THE END!

说明:以‘:’为分隔符,对文件中的每一行进行操作,
剪切出每一行中的第三块区域,由于没有加-s选项,
所以最后一行,虽然没有分隔符,但是还是输出了。
去掉使用:
$cut -d ':' -f 3 -s linuxXiaoNiu.data

实例2

$cut -c 2 linuxXiaoNiu.data
+
I
E
H
H
说明:操作linuxXiaoNiu.data每一行,筛选出第2个字。

$cut -b 2 linuxXiaoNiu.data
+
I
E
H
说明:操作linuxXiaoNiu.data每一行,筛选出第2个位,
可以看出-b和-c的输出结果是一样的,
这个我还不知到什么原因,关于字和位,到底有什么区别?
哪位大神可以给小弟解惑,感激不尽!

实例3

$cut -d ' ' -f 2
hello everyone! I am linux 小牛
everyone

说明:cut后面没有跟文件名,cut将读取标准输入,
然后进行处理,第二行是我输入的,第三行为处理结果。

猜你喜欢

转载自blog.csdn.net/qq_37468954/article/details/82049749