如何从文件中选择列

cut命令可以从文件中提取一个垂直的切片,并打印出指定的列或字段。同sort命令一样,cut命令将空格隔开的单词定义为字段,除非指定了自己的分隔符。而列是指每一行的第n个字符。也就是说,第5列包含了每一个的第5个字符。

下面是文件company.data的内容:

406378:Sales:Itorre:Jan

031762:Marketing:Nasium:Jim

636496:Research:Ancholie:Mel

396082:Sales:Jucacion:Ed

如果要打印每一行的第1-6列,即员工编号,则使用-c1-6选项,如下命令所示:

$ cut -c1-6 company.data

406378

031762

636496

396082

如果只打印每一行的第4列和第8列,即编号的第4个字符和部门的第一个字符,则使用-c4:8选项,如下命令所示:

$ cut -c4,8 company.data

3S

7M

4R

0S

鉴于文件的各个字段用冒号隔开,可以通过-d:-f3选项来提取名字列,如下:

$ cut -d: -f3 company.data

Itorre

Nasium

Ancholie

Jucacion

通常我们使用空格作为分隔符。这种情况下,需要把分隔符放在单引号里面,如:-d' '

另外,如果想提取从一个起点到行尾,则只要省去后面的字段数字即可,如下面的例子所示。

假如有一个文件test.data:

abc def ghi jkl 

mno pqr stu vwx 

yz1 234 567 890

要提取从第2个字字段到行尾,则写法是:cut -d' ' -f2- test.data

结果是:

def ghi jkl

pqr stu vwx

234 567 890

下面是cut命令常用选项的总结:

-c[n|n,m|n-m] 指定一列,多列(用逗号隔开),列区间(用破折号隔开)

-f[n|n,m|n-m] 指定一个字段,多个字段(用逗号隔开),字段区间(用破折号隔开)

-dc 指定字段分隔符

-s 不显示不含分隔符的行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值