Linux cut命令

用途

文本文件按列提取。

特点

过于简单,只能处理固定格式的分隔符,分隔符不能使用正则表达式

用法

命令基本格式

  • -b、-c、-f分别表示字节、字符、字段(即byte、character、field);
  • list表示-b、-c、-f操作范围,-n常常表示具体数字;
  • file表示的自然是要操作的文本文件的名称;
  • delim(英文全写:delimiter)表示分隔符,默认情况下为TAB;
  • -s表示不包括那些不含分隔符的行(这样有利于去掉注释和标题)
cut option list file
cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-d delim][-s][file ...]

list 范围的表示方法

表示意义
N只有第N项
N-从第N项一直到行尾
N-M从第N项到第M项(包括M)
-M从一行的开始到第M项(包括M)
-从一行的开始到结束的所有项

实例

经典应用

Linux中提取所有用户
cut -f 1 -d ':' /etc/passwd
以:作为分割符,提取第一个字段

去掉开始的命令提示符

cut -c 8- usercount.pig
从第8个字符开始提取
原文件 usercount.pig

grunt> A = load '/data/20160518/1055/100/9_1463541300000/part-00000' using PigStorage('|');
grunt> B = foreach A generate $16 as ip;
grunt> C = group B by ip;
grunt> D = foreach C generate group,COUNT(B);
grunt> dump D;

处理后结果

A = load '/data/20160518/1055/100/9_1463541300000/part-00000' using PigStorage('|');
B = foreach A generate $16 as ip;
C = group B by ip;
D = foreach C generate group,COUNT(B);

去除标题,并替换分隔符

cut -f 1- -s --output-delimiter='|' table.txt

  • 由于默认分割符是 \t, 所以不需指定
  • -s 去除不含分隔符的行(通常是标题,空行)
  • 指定输出分割符
    原文件,cat table.txt
table

1       xiaohu
2       xiaoli
3       xiaowang
4       xiaoming

处理结果

1|xiaohu
2|xiaoli
3|xiaowang
4|xiaoming
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值