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 : 存储以 | 为分隔符的第一列
标签:aa,BEGIN,log,使用,NF,AWK,分隔符,awk
From: https://www.cnblogs.com/aaacarrot/p/18252549