《shell脚本学习指南》----字段处理的几种类型

(1)分割字段的两种方式

空白符:space或Tab键

特定的定界符:冒号


(2)字段的选定----cut

#取出第一列和第五列的字段,不需加上cat便可直接读取该字段

#以冒号为定界符


$ cut -d : -f 1,5 /etc/passwd


(3)字段连接的实例----join

两个原文档:


sales:                    quotas:
joe     100               joe       50
jane    200               jane      75
herman  150               herman    80
chris   300               chris	    95


我们的任务是将两个文档合并,以人名为键值


$ vim merge_sales.sh


#输入以下shell

#!/bin/sh -
#merge-sales.sh
#delete remarks and compositor data
sed '/^#/d' quotas | sort > quotas.sorted
sed '/^#/d' sales | sort > sales.sorted
#use the first values as a key to combine
#the result will be inputed to standin
join quotas.sorted sales.sorted
#delete cushion files
rm quotas.sorted sales.sorted

(4)重新编排字段----awk


    awk读取输入记录(通常是一行),然后自动将各个记录切分为字段。awk将每条记录内的字段数目,存储到内建变量NF。
    
    几个例子:

#打印第一个字段,以冒号为分隔符

$ awk 'BEGIN{FS=":"}{print $1}' /etc/passwd


#打印第一行和最后一个字段

$ awk 'BEGIN{FS=":"}{print $1 $NF}' /etc/passwd


#打印非空行,编号0表示整条记录

$ awk 'NF > 0 {print $0}' /etc/passwd


#printf和-F的应用

$ awk -F: '{printf "User is really %s\n",$1,$5}' /etc/passwd


-F可以自动设置FS变量,如果不加此参数,$5将不会被打印,而且在$1打印完#毕之后还会继续打印知道遇到$结束符



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值