Linux基础——awk工具

1、awk删选ip字段,通过cut打印ip

# awk截取字段,分隔符管道符“|”左边为第一个打印字符

# cut截取字段,分隔符双引号“"”左边为第一个打印字符

脚本展示:

#!/bin/bash

cat /root/ip.txt | grep "10.139" | awk -F'|' '{print $6}' | cut -d '"' -f8

 

# awk删选ip及掩码字段,cut通过“/”作为分隔符打印第一列
[root@Harbor tmp]# ip a | grep ens33 | awk -F' ' '{print $2}' | cut -d '/' -f1 ens33: 192.168.177.140

2、查找包含字符sshd行,通过“xargs -L”传参右侧echo指令按1列打印

ps -ef | grep sshd | awk '{print $2}' | xargs -L 1 echo

# 左边echo输出字符串,通过xargs -I {}指定传参位置“{}”
echo "file1 file2 file3" | xargs -I {} echo "processing {}"

 3、打印第3行、第5行及以后的行,匹配第9列小于70的行并升序排列;

 sar -u -f .var/log/sa/sa02 |  awk -F ' ' 'NR==3  {print}  NR>=5 && $1!="Average:" && $9 <70 {print} ' |sort -n  -k 4| more

 

注意:
语法报错:awk命令行模块间,以单引号''作为字符分隔符;在单个模块内,以双引号“”作为分隔。

 4、双引号无效输出,{}两边使用双引号不生效

 5、print跟随双引号才能添加所需字符

 6、删选第三列插入字符$3="e f g"

 7、删除行首和行尾的空格、分隔符的空白部分,并每列首字母对齐

awk 'BEGIN{OFS="\t"}{$1=$1;print}' awk_txt

 8、删选除lo网卡以外的所有ipv4地址

ifconfig | awk '/inet / && !($2 ~ /^127/){print $2}'

 9、删选除lo字符以外第六列的ip字符

ifconfig | awk 'BEGIN{RS=""}!/lo/{print $6}'

 10、“-F”选定分隔符,通过!arr[$1]选定第一列去重

awk -F" " '!arr[$1]++{print}' text.txt

 11、打印TCP连接数量

复制代码

# 打印tcp连接状态,匹配从左往右tcp字符串行并计数存入arr[]数组打印,

netstat -tnap |awk '
/^tcp/{
arr[$6]++
}
END{
for(state in arr){
print state ": " arr[state]
}
}
'

LISTEN: 7
ESTABLISHED: 1

 

# 或

netstat -tnap | awk '/^tcp/{arr[$6]++} END{for(state in arr){print state ":" arr[state]}}'

# 拓展——查找某列中包含的sshd字符串计数并打印

netstat -tnap | awk '/sshd/{arr[$7]++} END{for(state in arr){print state ":" arr[state]}}'

复制代码

 12、awk加入比较(大于、等于、小于、大于等于、小于等于)

复制代码
# 大于
sar -r | awk '$9 > 1020992 {print $N}' # 等于 # 小于 # 大于等于 # 小于等于 # 不等于
# 大于和小于
sar -r | awk '$9 > 1020992 || $9 < 100 {print $N}' | sort -rk 9 # 加入if语句
复制代码

 

posted on   gkhost  阅读(72)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示