2021年11月22号 awk高级用法(下)

简介: 2021年11月22号 awk高级用法(下)

awk函数

rand随机数

srand随机数必须匹配

awk ' BEGIN{srand();print int(rand()*100)}'

length([s])返回指定字符串的长度

sub替代

sub(r,s,[t]):对字符串搜索r表示模式匹配的内容,并将第一个匹配内容替换为s

echo "1:1:1 1:1:1" | awk 'sub(/:/,"-",$1)'
echo "1:1:1 1:1:1" | awk '{sub(/:/,"-",S1);print $0}'

gsub全部替代

echo "1:1:1 1:1:1" | awk 'gsub(/:/,"-",$1)'
echo "1:1:1 1:1:1" | awk '{gsub(/:/,"-",S1);print $0}'

split切割字符

netstat -tn|awk '/^tcp/{split($5,ip,":");count[ip[1]]++}END{for(i in count){print i,count[i]}}'

system函数调用shell命令

awk 'BEGIN{tail=180;system("echo your tail is" tail)}'
awk 'BEGIN{system("hostname")}'

防火墙(大于100进)

netstat -tn | awk '/^tcp/{split($5,ip," :" );count[ip[1]]++}END{for(i in name){if(name[i]>=100){system("iptables -A INPUT -s "i" -j REJECT")}}'

fun脚本函数(比较大小)

vim fun.awk
function max(x,y) {
x>y?var=x:var=y
return var
}
BEGIN{print max(a,b)}
awk -v a=100 -v b=200 -f fun.awk

awk脚本

vim test.awk
#!/bin/awk -f
{if($3 >=1000)print $1,$3}

赋权

chomd +x test.awk

执行

./test.awk -F: /etc/passwd

awk变量脚本

vim test.awk
#!/bin/awk -f
{if($3 >=min && $3<=max)print $1,$3}
chomd +x test.awk
./test.awk -F: min=100 max=1000 /etc/passwd

awk取日志关键字追加

awk -F”[ .]” ‘{print $2}’ 1.log >> 1.log

awk取中间网址

awk -F”/” ‘{url[$3]++}END{for(I in url){print url[i],i}}’ 1.log

排序前十

sort -nr|head -10


目录
相关文章
|
前端开发 JavaScript API
node事件循环中事件执行顺序
本文详细介绍了Node.js环境下的事件循环机制,包括其六个主要阶段:timers、I/O callbacks、idle, prepare、poll、check和close callbacks。文章通过具体代码示例解释了`setTimeout`、`setImmediate`和`process.nextTick`在事件循环中的执行顺序和区别。还探讨了在不同情况下(如I/O操作中)这些函数的执行顺序如何受到影响。最后,通过一个综合例子,展示了实际编码中事件循环的执行顺序。
230 1
node事件循环中事件执行顺序
|
12月前
|
Web App开发 人工智能 自然语言处理
WebChat:开源的网页内容增强问答 AI 助手,基于 Chrome 扩展的最佳实践开发,支持自定义 API 和本地大模型
WebChat 是一个基于 Chrome 扩展开发的 AI 助手,能够帮助用户理解和分析当前网页的内容,支持自定义 API 和本地大模型。
983 1
|
存储 运维 安全
Linux中,如何配置iSCSI存储?
Linux中,如何配置iSCSI存储?
|
存储 持续交付 API
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
620 0
GitLab CI/CD简介:构建持续集成与持续交付的全方位指南
|
监控 网络协议 Unix
深入探索Linux的lsof命令
在Linux系统中,了解哪些文件被哪些进程打开对于系统管理和问题诊断是极其重要的。这正是`lsof`命令,即List Open Files,发挥其强大功能的场景。本文旨在详细介绍`lsof`的起源、底层原理、参数意义,常见用法,并详解其返回结果的每个字段含义。此外,我们将讨论在使用`lsof`命令时需要注意的事项。
|
网络协议 网络虚拟化
|
网络协议 Linux 缓存
|
Shell Linux 虚拟化
VMware Workstation客户端 Centos系统 中文乱码 UTF-8字符无法正常显示
发生该问题的时间比较长了,之前没有第一时间整理记录。依稀记得是因为系统重装之后,Vmware软件重新安装,然后导入以前的虚拟机配置文件,就出现了中文乱码的问题。 从百度上查到的各种资料,都是说语言包和配置的问题,需要重新安装、修改配置等等步骤,下面将记录我的尝试步骤和解决问题的方案。
957 0
VMware Workstation客户端 Centos系统 中文乱码 UTF-8字符无法正常显示
|
监控 安全 Linux