导论
cut用于取出若干特定的列字段,小巧方便,是awk在列方向上比较好的小型等效方案。
cut接受文件输入和标准输入,属于管道命令。
说明
-
cut options file( or stdin )
-c char_range : 以字符宽度取出列数据;
-d 'delimiter' : 使用delimiter作为界定符,单字符,默认是tab;
-f column_range : 在-d确定的情况下,-f设定取出的列的范围;
--output-delimiter : 新feature,能够指定输出间隔符,默认为和输入间隔符一致;
用法
1. 取出用户文件的用户和登录shell的信息
-
$ cut -d':' -f 1,7 /etc/passwd
-
root:/bin/bash
-
bin:/sbin/nologin
-
daemon:/sbin/nologin
-
...
-
$ cut -d':' -f 1-7 /etc/passwd #列出第1-7列所有的信息;
2. 列出当前目录下文件权限位的信息
-
$ ls -l | cut -c 1-10
-
total 44
-
-rw-rw-r--
-
-rwxr-xr-x
-
-rw-rw-r--
3. 输出cut.txt的姓名和id列,并以'=>'分隔
-
$ cut -f 1,3 cut.txt --output-delimiter='=>'
-
name=>num
-
john=>1
-
jessica=>2
-
john=>3
总结
cut命令短小精悍,通常用作管道中的某一环节,善于对严格分隔过的数据进行抽取分析。当输入数据排列不那么严格时,应谨慎使用,寻求awk等完备工具解决。
附:cut.txt(以\t分隔)
name class num
john a 1
jessica b 2
john c 3
阅读(1564) | 评论(0) | 转发(0) |