linux awk命令
来源:互联网 发布:美股模拟交易软件java 编辑:程序博客网 时间:2024/05/20 11:24
linux awk命令
- 适合格式化文本,对文本进行较复杂格式处理
基本用法,
awk '{[pattern] action}' {filenames}
, ”只能单引号- test文本log.txt
2 this is a test3 Are you like awkThis's a test10 There are orange,apple,mongo
awk '{print $1,$4}' log.txt
按空格输出文本的1、4项awk -F 指定分割符
awk -F, '{print $1,$2}' log.txt
或awk -F ',' '{print $1,$2}' log.txt
- 多个分隔符
awk -F '[ ,]' '{print $1,$2,$5}' log.txt
- awk设置变量
awk -v # 设置变量
awk -va=1 '{print $1,$1+a}' log.txt
- awk -f {awk脚本} {文件名}
awk -f cal.awk log.txt
cal.awk
#!/bin/awk -f#运行前BEGIN { math = 0 english = 0 computer = 0 printf "NAME NO. MATH ENGLISH COMPUTER TOTAL\n" printf "---------------------------------------------\n"}#运行中{ math+=$3 english+=$4 computer+=$5 printf "%-6s %-6s %4d %8d %8d %8d\n", $1, $2, $3,$4,$5, $3+$4+$5}#运行后END { printf "---------------------------------------------\n" printf " TOTAL:%10d %8d %8d \n", math, english, computer printf "AVERAGE:%10.2f %8.2f %8.2f\n", math/NR, english/NR, computer/NR}
- 计算文件大小
ls -l *.awk | awk '{sum+=$5} END {print sum}'
- 查找文件内行数大于多少字符的行
awk 'length>1' log.txt
- 运算符
运算符 描述= += -= *= /= %= ^= **= 赋值?: C条件表达式|| 逻辑或&& 逻辑与~ ~! 匹配正则表达式和不匹配正则表达式< <= > >= != == 关系运算符空格 连接+ - 加,减* / % 乘,除与求余+ - ! 一元加,减和逻辑非^ *** 求幂++ -- 增加或减少,作为前缀或后缀$ 字段引用in 数组成员
例子
awk '$1>2' log.txt 过滤第一列大于2的行 awk '$1==2 {print $1,$3}' log.txt 过滤第一列等于2的行 awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt 过滤第一列大于2并且第二列等于'Are'的行
- 内建变量(不细讲),如
FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS
- 正则(~ 表示模式开始。// 中是模式)
awk '$2 ~ /th/ {print $2,$4}' log.txt # 输出第二列包含 "th",并打印第二列与第四列
- 忽略大小写
awk 'BEGIN{IGNORECASE=1} /this/' log.txt
- 模式取反
awk '$2 !~ /th/ {print $2,$4}' log.txt
阅读全文
0 0
- linux awk 命令应用
- linux命令之awk
- Linux awk命令详解
- Linux awk命令详解
- linux shell awk 命令
- linux awk 命令应用
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk命令详解
- Linux awk 命令
- Linux awk 命令 说明
- Linux awk 命令 说明
- Linux awk命令详解
- linux awk命令
- linux awk命令详解
- linux awk命令
- Linux awk 命令 说明 .
- Google 超分辨率技术 RAISR:模糊图片瞬间变清晰,运算速度快十倍
- 在 Java 中应用设计模式
- Database—数据库建模
- Python字典的常用操作
- ubuntu下安装yaf
- linux awk命令
- 12.1题目总结
- HTML 简介
- 编程针对接口而不是针对实现——中心
- NB-IoT SIM7000C调试笔记 01 NB-IoT及GPRS加网测试
- C语言学习历程(十二)数组指针与指针数组
- Windows10+Python3.6下安装NumPy+SciPy+Matplotlib(转改)
- [Spring之AOP]
- (转)Lock和synchronized比较详解