010-截取列字段cut

1632阅读 0评论2012-12-15 oceanswimmer
分类:Python/Ruby

导论
cut用于取出若干特定的列字段,小巧方便,是awk在列方向上比较好的小型等效方案。
cut接受文件输入和标准输入,属于管道命令。


说明
  1. cut options file( or stdin )
-c char_range : 以字符宽度取出列数据;
-d 'delimiter' : 使用delimiter作为界定符,单字符,默认是tab
-f column_range : 在-d确定的情况下,-f设定取出的列的范围;
--output-delimiter : 新feature,能够指定输出间隔符,默认为和输入间隔符一致;


用法
1. 取出用户文件的用户和登录shell的信息
  1. $ cut -d':' -f 1,7 /etc/passwd
  2. root:/bin/bash
  3. bin:/sbin/nologin
  4. daemon:/sbin/nologin
  5. ...
  6. $ cut -d':' -f 1-7 /etc/passwd #列出第1-7列所有的信息;
2. 列出当前目录下文件权限位的信息
  1. $ ls -l | cut -c 1-10
  2. total 44
  3. -rw-rw-r--
  4. -rwxr-xr-x
  5. -rw-rw-r--
3. 输出cut.txt的姓名和id列,并以'=>'分隔
  1. $ cut -f 1,3 cut.txt --output-delimiter='=>'
  2. name=>num
  3. john=>1
  4. jessica=>2
  5. john=>3


总结
cut命令短小精悍,通常用作管道中的某一环节,善于对严格分隔过的数据进行抽取分析。当输入数据排列不那么严格时,应谨慎使用,寻求awk等完备工具解决。


附:cut.txt(以\t分隔)
name    class   num
john    a       1
jessica b       2
john    c       3
上一篇:007-字符替换tr
下一篇:015-awk