Linux小技巧之awk必知必会

编程入门 行业动态 更新时间:2024-10-10 21:23:45

Linux<a href=https://www.elefans.com/category/jswz/34/1769317.html style=小技巧之awk必知必会"/>

Linux小技巧之awk必知必会


Linux Shell 三剑客之一,废话不多说直接上干货。

目录

    • 1. 指定分隔符
    • 2.指定打印行数
    • 3.打印最后一列
    • 4.打印倒数第二列
    • 5.匹配输出
    • 6.if 判断
    • 7.统计列总数值
    • 8.时间格式转换

示例数据:

1. 指定分隔符

awk -F '|' '{print $1}' log.txt

# awk -F '|' '{print $1}' log.txt
tbname
=================================================================
tb_7456_cm1eM
tb_7456_cm1e0
tb_7456_1bg3J
tb_7456_1dXax
tb_7456_1b9ol
tb_7456_1bhdH
tb_7456_1eAYV
tb_7456_1fxkg
tb_7456_1fZRW
tb_7456_cm1ez
tb_7456_1bg3J
tb_7456_cm1hX
tb_7456_cm1ck
tb_7456_cm1ck
tb_7456_cm1ck

2.指定打印行数

awk -F '|' 'NR>2 {print $1}' log.txt

# awk -F '|' 'NR>2 {print $1}' log.txt
tb_7456_cm1eM
tb_7456_cm1e0
tb_7456_1bg3J
tb_7456_1dXax
tb_7456_1b9ol
tb_7456_1bhdH
tb_7456_1eAYV
tb_7456_1fxkg
tb_7456_1fZRW
tb_7456_cm1ez
tb_7456_1bg3J
tb_7456_cm1hX
tb_7456_cm1ck
tb_7456_cm1ck
tb_7456_cm1ck

3.打印最后一列

awk -F '|' 'NR>2 {print $NF}' log.txt

# awk -F '|' 'NR>2 {print $NF}' log.txt1532132095655633347611481093166872491452261506

4.打印倒数第二列

awk -F '|' 'NR>2 {print $(NF-1)}' log.txt

# awk -F '|' 'NR>2 {print $(NF-1)}' log.txt108350293572073162627148203184806420348

5.匹配输出

awk -F '|' '/cm1e/ {print $1}' log.txt

# awk -F '|' '/cm1e/ {print $1}' log.txt
tb_7456_cm1eM
tb_7456_cm1e0
tb_7456_cm1ez

6.if 判断

awk -F '|' '{if ($3<100) print $0 }' log.txt

# awk -F '|' '{if ($3<100) print $0 }' log.txt
tbname         | create_time             |     cols|        rows
=================================================================
tb_7456_1dXax  | 2023-03-21 05:38:44.400 |      57 |       56556
tb_7456_1eAYV  | 2023-03-21 03:50:16.347 |      26 |       48109
tb_7456_1fxkg  | 2023-03-21 03:50:15.484 |      27 |           3
tb_7456_1bg3J  | 2023-09-05 12:42:18.269 |      18 |         145
tb_7456_cm1ck  | 2023-09-05 02:03:43.843 |      64 |           6
tb_7456_cm1ck  | 2023-03-21 03:50:19.610 |      20 |           1
# awk -F '|' '/cm1/ {if ($3<100) print $1"\t"$3 }' log.txt
tb_7456_cm1ck         64
tb_7456_cm1ck         20

7.统计列总数值

awk -F '|' 'NR>2 {sum+=$3} END {print sum}' log.txt

# awk -F '|' 'NR>2 {sum+=$3} END {print sum}' log.txt
2665

8.时间格式转换

awk '{print strftime("%Y-%m-%d %T",1697848286)}'

# date +%s |awk '{print strftime("%Y-%m-%d %T",$1)}'
2023-10-21 08:32:44

更多推荐

Linux小技巧之awk必知必会

本文发布于:2023-12-06 07:17:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1666839.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小技巧   必会   Linux   awk

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!