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


目录
相关文章
|
7月前
|
数据安全/隐私保护
关于DotNetZip的用法
关于DotNetZip的用法
78 0
|
存储 SQL
TkMybatis用法总结
TkMybatis用法总结
199 0
|
测试技术 API
harfbuzz 的用法
HarfBuzz 整形 API 的核心是函数。此函数采用一种字体,即 包含一串 Unicode 代码点的缓冲区和 (可选)字体功能列表作为其输入。它取代了 缓冲区中的代码点,其中包含来自 字体,正确排序和定位,以及任何 应用的可选字体功能。hb_shape()
486 0
propertyIsEnumerable的用法
propertyIsEnumerable用法 语法和功能 obj.propertyIsEnumerable(prop): 判断prop属性是否是obj的可枚举属性
186 0
|
C# 容器 数据格式
AvalonDock的基本用法
原文:AvalonDock的基本用法         AvalonDock是优秀的开源项目,用于创建可停靠式布局,能够在WPF中方便开发出类似VS2010的软件界面。对于复杂的软件系统,大量控件的使用会使的界面变得难以管理。
2208 0
iTween的用法总结
Unity3D插件-iTween的基本用法 本文提供全流程,中文翻译。Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) 1 ...
1684 0