Linux命令--cut

Linux命令--cut

linux中截取字符串cut命令用法简介:
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f:与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的
范围之内,该字符将被写出;否则,该字符将被排除。

例子:

shell>> cat fileName test2 this is a test content

-c 和 -f 参数可以跟以下子参数:
m 第m个字符或字段
m- 从第m个字符或字段到文件结束
-n 从第1个到第n个字符或字段
m-n 从第m个到第n个字符或字段

-c m-n 表示显示每一行的第m个字元到第n个字元。例如:
shell>> cut -c1-6 fileName ## print 每行 开头算起前 6 个字元 test2 this i

如果文件内容为:
liubi 23 140004

cut -c 1-5,10-14 fileName liubi14000


-f m-n 表示显示第m栏到第n栏(使用tab分隔)。例如:
# cut -f 1,3 fileName liubi 23 140004

如果遇到空格和制表符时,怎么分辨呢?
有时候制表符确实很难辨认,有一个方法可以看出一段空格到底是由若干个空格组成的还是由一个制表符组成的。
vim tab_space.txt
???????this is tab finish. this is several spacefinish.

查看
[rocrocket@rocrocket programming]$ sed -n l tab_space.txt this is tab\tfinish.$ this is several spacefinish.$

【Linux命令--cut】如果是制表符(TAB),那么会显示为\t符号,如果是空格,就会原样显示。
通过此方法即可以判断制表符和空格了。
注意,上面sed -n后面的字符是L的小写字母哦,不要看错。
???????

我们经常会遇到需要取出分字段的文件的某些特定字段,例如 /etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以:
cut -d: -f 1 /etc/passwd > /tmp/users
-d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段
如:
使用|分隔
cut -d ’|’ -f2 1.test>2.test
使用:分隔
cut -d ’:’ -f2 1.test>2.test

    推荐阅读