【AWK】awk的使用

AWK 看这篇就基本能满足日常了: https://www.cnblogs.com/zhengyan6/p/16290156.html

awd -F'f' '{print $NF}' 1.txt

$NF 分隔符的最后一列。(如果能分割就是最后一个,如果不能分割,那就是整行)
NF 是行数。。
$0 是一整行
$1 是分割数据后的第一个项
NR : 用来记录行号 ( awk 的参数是可以执行多个的。。。比如 : awk -F: '{print NR, NF, $1, $2, $NF}' aa.log)
BEGIN{FS=":"} : 相当于指定以 : 为分隔符,即 awk BEGIN{FS=":"} = awk -F: 同效果,但 BEGIN{FS=":"} 优先级更高
OFS : 指定打印分隔符(默认空格)

比如aaa.log 的内容有:
aa:1:2:3
bb:11:22:33
cc:44:55:66
cdfsdfd:2423423
afbfd
如果执行 awk -F: '{print $1, $2}' aa.log 它按冒号分隔,并默认按空格做分隔符打印,结果如下:
aa 1
bb 11
cc 44
cdfsdfd 2423423
afbfd
如果指定分隔符
awk -F: 'BEGIN{OFS=" >>> "}{print $1, $2}' aa.log
结果就会变成:
aa >>> 1
bb >>> 11
cc >>> 44
cdfsdfd >>> 2423423
afbfd >>>
还有 printf 是可以带格式化的:
awk -F: 'BEGIN{OFS="|"}{printf "|%+15s|%-15s|\n", $1, $2}' aa.log
| aa|1 |
| bb|11 |
| cc|44 |
| cdfsdfd|2423423 |
| afbfd| |
解析:
| : 以 | 为分隔符
|%+15s| : 以 | 为分隔符 %s 配合 printf 使用 代替当前字符串 右对齐 占用15字符
|%-15s| : 以 | 为分隔符 %s 配合 printf 使用 代替当前字符串 左对齐 占用15字符
\n : 换行符
$NF : 存储以 | 为分隔符的最后一列
$1 : 存储以 | 为分隔符的第一列
posted @   aaacarrot  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示