shell对文本的操作

假设文件名为log

统计行数  : wc -l log

把每行文本按照某元素split,并逐行打印split后的元素:cat log | awk -F "\t" '{print $0}'  $0或者省略$表示打印整行,$1表示打印第一个元素。实际上 "\t" 和空格不需要特殊的说明分隔符,直接cat log | awk '{print $1}'  和 cat log | awk -F "\t" '{print $1}'  效果是一样的。print和$1之间有没有空格都可以。

去除重复的行并打印:cat log | awk '!a[$0]++{print}'   中括号中的$0不可省略

只显示重复行:cat log | awk 'a[$0]++{print}' 

按照第一个元素删除重复行:cat log | awk '!a[$1]++{print}'   若两条数据第一列重复,则显示首次出现的数据。

按照第一个和第二个元素删除重复行:cat log | awk '!a[$1" "$2]++{print}' 

按照第一个和第二个元素删除重复行后显示行数:cat log | awk '!a[$1" "$2]++{print} | wc -l' 

awk '!a[$1" "$2]中自动检测空格和tab,默认全部换成一个空格。所以元素之间无论有多少个空格和tab,一律视为一个空格。

awk '!a[$1" "$2]和awk '!a[$1"\t"$2]效果相同。

按照第一个和第二个元素删除重复行后显示第三个元素大于50的行数:

cat log | awk '!a[$1" "$2]++{print} | awk '{if($3>50)print}' | wc -l

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值