awk 命令

基础语法

awk 'pattern { action }' file.txt

以下是一些常见的内置变量

  • $0:表示当前行的整个内容(包括所有字段)。
  • $1, $2, $3, …:表示当前行的第一个、第二个、第三个字段,依此类推。字段之间默认使用空格作为分隔符,可以使用-F选项指定不同的字段分隔符。
  • NR:当前行号
  • NF:当前行的字段数
  • FS:字段分隔符,默认为“空格”
  • RS:记录分隔符,默认为“换行符”

以下是一些常见的内置函数

  • print:打印输出
  • length:返回字符串长度
  • substr:返回子字符串
  • match:查找正则表达式匹配项

示例应用

  • 提取日志文件中特定时间段内的日志信息
awk '/2022-01-01 10:00:00/,/2022-01-01 12:00:00/' logfile.txt
  • 查找包含某个关键字的行并打印关键字所在行和前后几行:
awk '/keyword/{ for (i=-2;i<=2;i++) print NR+i,$0}' file.txt

查找file.txt文件中包含“keyword”的所有行,并打印关键字所在行和前后两行。

  • 统计CSV文件中某一列的唯一值数量:
awk -F',''{ count[$1]++} END { for (word in count) print word, count[word]}' file.csv

统计file.csv文件中第一列的唯一值数量

  • 提取登录成功的用户名并统计登录次数
awk '/Login successful/{ count[$4]++} END { for (user in count) print user, count[user]}' login.log
  • 打印输入文件中每一行的行号和长度
awk '{ print NR, length }' file.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值