正在加载...

Linux cut命令

[ 2009/12/09 12:02 | by selboo ]

一个非常有用的命令,主要用来提取各种各样的数据。

cut -cchars file
如:
   -c5     提取第5个字符
        -c5-    提取第5个字符以后的字符
        -c1,5,12 提取多个字符,中间用“,”符号隔开
        -c5-14 提取第5个字符到第14个字符间的字符
http://gan.cublog.cn
[service@dsg tmp]$ cat f.txt
service pts/0        Oct 9 20:27 (211.95.114.235)
service pts/1        Oct 9 21:06 (218.80.203.242)
service pts/2        Oct 9 14:35 (218.80.203.242)
service pts/3        Oct 9 21:07 (218.80.213.242)
service pts/4        Oct 9 21:07 (218.80.213.242)
service pts/5        Oct 9 21:45 (58.31.205.19)
[service@dsg tmp]$ cut -c5 f.txt
i
i
i
i
i
i
[service@dsg tmp]$ cut -c5- f.txt  
ice pts/0        Oct 9 20:27 (211.95.114.235)
ice pts/1        Oct 9 21:06 (218.80.203.242)
ice pts/2        Oct 9 14:35 (218.80.203.242)
ice pts/3        Oct 9 21:07 (218.80.213.242)
ice pts/4        Oct 9 21:07 (218.80.213.242)
ice pts/5        Oct 9 21:45 (58.31.205.19)
[service@dsg tmp]$ cut -c1,5,14 f.txt
si0
si1
si2
si3
si4
si5

------------------------------
cut -d -f
-d, --delimiter=DELIM
              use DELIM instead of TAB for field delimiter

-f, --fields=LIST
              output only these fields; also print any line that contains no
              delimiter character, unless the -s option is specified

-d -f 主要用来从某中分隔符中提取数据
如:
[service@dsg tmp]$ cat f.txt
service1:pts/0:Oct 9 20:27: (211.95.114.235)
service2:pts/1:Oct 9 21:06: (218.80.203.242)
service3:pts/2:Oct 9 14:35: (218.80.203.242)
service4:pts/3:Oct 9 21:07: (218.80.213.242)
service5:pts/4:Oct 9 21:07: (218.80.213.242)
service6:pts/5:Oct 9 21:45: (58.31.205.19)
[service@dsg tmp]$ cut -d: -f1 f.txt
service1
service2
service3
service4
service5
service6
[service@dsg tmp]$ cut -d: -f2 f.txt
pts/0
pts/1
pts/2
pts/3
pts/4
pts/5
[service@dsg tmp]$ cut -d: -f3 f.txt
Oct 9 20
Oct 9 21
Oct 9 14
Oct 9 21
Oct 9 21
Oct 9 21
[service@dsg tmp]$ cut -d: -f5 f.txt
(211.95.114.235)
(218.80.203.242)
(218.80.203.242)
(218.80.213.242)
(218.80.213.242)
(58.31.205.19)
[service@dsg tmp]$ cut -d: -f9 f.txt





[service@dsg tmp]$ cut -d: -f1,4 f.txt #提取1和4列数据
service1:27
service2:06
service3:35
service4:07
service5:07
service6:45

Given that the fields are separated by tabs, you should use the -f option to cut instead:

如果文件使用tab键隔开就直接使用-f就可以了,-d的默认分隔符号就为tab键。
http://gan.cublog.cn
更多的cut使用查看man cut
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]