awk的一些简单使用

最近面试过程中被问到一些linux中文件处理相关的命令,于是整理了一下awk相关的使用

示例1,使用awk统计文件行数
qingsong@db2a:/tmp$ awk "BEGIN { i=0 } { i++ } END{ print i }" access_bak.log
14

示例2,打印文件
awk {print} access_bak.log

示例3,打印文件时加上头和尾:
qingsong@db2a:/tmp$ awk ' BEGIN { print "begin" } {print} END {print "end"}' access_bak.log

awk的特殊变量
NR 当前行号
NF 当前行字段数
$0 当前行的文本
$1 当前行第一个字段
$n 当前行第n个字段

统计行号的另一种方法:
awk "END{ print NR}" access_bak.log

打印第2,4个字段
$ awk '{print $2,$4}' access_bak.log

打印倒数第二个,倒数第一个字段:
$ awk '{print $(NF-1), $NF}' employee.txt

打印第4个字段,以及第4个字段加1000之后的值:
$ awk '{print $4, 1000+$4}' employee.txt

打印第4个字段,以及第4个字段加1000之后的值:
$ awk '{print $4, 1000+$4}' employee.txt

统计第二列的数字之和:
awk 'BEGIN{sum=0} {sum+=$2} END{print sum}' access_log_num.log

awk '$2<33 { print $0}' access_log_num.log

包含22的行:
awk '/22/{print $0}' access_log_num.log

打印从M行到N行的数据
 awk "NR=2,NR=4" access_log_num.log

打印出start_pattern和end_pattern之间的文本
$ awk '/start_pattern/, /end_pattern/' filename

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值