wordpress 电影网站,凡客vancl的网站标题,网站开发 合同范本,自己如何制作一个网站1.awk的工作原理
逐行读取文本#xff0c;默认以空格或tab键为分隔符进行分隔#xff0c;将分隔所得的各个字段保存到内建变量中#xff0c;并按模式或者条件执行编辑命令。awk倾向于将一行分成多个字段然后再进行处理。awk信息的读入也是逐行读取的#xff0…1.awk的工作原理
逐行读取文本默认以空格或tab键为分隔符进行分隔将分隔所得的各个字段保存到内建变量中并按模式或者条件执行编辑命令。awk倾向于将一行分成多个字段然后再进行处理。awk信息的读入也是逐行读取的执行结果可以通过print的功能将字段数据打印显示。使用awk命令的过程中,可以使用逻辑操作符表示与、|表示或、!表示非还可以进行简单的数学运算如、-、*、/、%、^分别表示加、减、乘、除、取余和乘方。 2.awk的命令格式 awk 选项 模式或条件 {操作} 文件1 文件2 .... 或者awk -f 脚本文件 文件1 文件2 ..... 第一步执行BEGIN{action;… }语句块中的语句第二步从文件或标准输入(stdin)读取一行然后执行pattern{ action;… }语句块它逐行扫描文件从第一行到最后一行重复这个过程直到文件全部被读取完毕。第三步当读至输入流末尾时执行END{action;…}语句块BEGIN语句块在awk开始从输入流中读取行之前被执行这是一个可选的语句块比如变量初始化、打印输出表格的表头等语句通常可以写在BEGIN语句块中END语句块在awk从输入流中读取完所有的行之后即被执行比如打印所有行的分析结果这类信息汇总都是在END语句块中完成它也是一个可选语句块pattern语句块中的通用命令是最重要的部分也是可选的。如果没有提供pattern语句块则默认执行{ print }即打印每一个读取到的行awk读取的每一行都会执行该语句块 3.awk基础命令
3.1过滤出包含指定内容的行 3.2 -F指定分隔符取列 3.3 BEGIN 3.4 END 3.5 文件导入打印内容 3.6 “计算机” 3.7 awk取磁盘量 3.8 awk取IP地址 4. awk 常见的内置变量
awk 选项 模式{print } FS :指定每行文本的字段分隔符缺省默认为空格或制表符tab。与 “-F”作用相同 -v FS: OFS输出时的分隔符 NF当前处理的行的字段个数 NR当前处理的行的行号序数 $0当前处理的行的整行内容 $n当前处理行的第n个字段第n列 FILENAME:被处理的文件名 RS行分隔符。awk从文件上读取资料时将根据RS的定义就把资料切割成许多条记录而awk一次仅读入一条记录进行处理。预设值是\n -v定义变量 awk 中的变量 -F指定分隔符 4.1 FS 4.2 OFS 4.3 RS 4.4 NF 4.5 NR 4.6 找普通用户 4.7 FNR 5.自定义变量 printf %s显示字符串 %d, %i显示十进制整数 %f显示为浮点数 %e, %E显示科学计数法数值 %c显示字符的ASCII码 %g, %G以科学计数法或浮点形式显示数值 %u无符号整数 %%显示%自身 ##############做成一个表格########################### awk -F: BEGIN{printf --------------------------------\n%-20s|%10s|\n--------------------------------\n,username,uid}{printf %-20s|%10d|\n--------------------------------\n,$1,$3} /etc/passwd 6.模式匹配 awk 模式{处理动作} PATTERN:根据pattern条件过滤匹配的行再做处 7.找到1000 到 1100之间的日志 awk /10/,/11/ 文件名 sed -nr /10/,/11/p 文件名 8.关系表达式 关系表达式结果为“真”才会被处理真结果为非0值非空字符串假结果为空字符串或0值 8.1 0为假1为真 8.2 n 8.3 !0 8.4 i!i 8.5 !(i!i) 9.条件判断 if语句awk的if语句也分为单分支、双分支和多分支单分支为if(判断条件){执行语句}双分支为if(判断条件){执行语句}else{执行语句}多分支为if(判断条件){执行语句}else if(判断条件){执行语句}else if(判断条件){执行语句}else if(判断条件){执行语句 if条件判断 10. for 11.访问、赋值数值元素 12.遍历数组 13.小案例
1. awk !line[$0] test 2. 用for循环打印端口号信息 ss -natp| awk NR!1{print $1} | sort |uniq -c ss -natp | awk NR!1{a[$1]}END{for(i in a)print i,a[i]} 3. 提取下面的字段中的 IP地址和时间 58.87.87.99 - - [09/Jun/2020:03:42:43 0800] POST /wp-cron.php?doing_wp_cron1591645363.2316548824310302734375 HTTP/1.1 sendfileon 128.14.209.154 - - [09/Jun/2020:03:42:43 0800] GET / HTTP/1.1 sendfileon 64.90.40.100 - - [09/Jun/2020:03:43:11 0800] GET /wp-login.php HTTP/1.1sendfileo 4. 提取host.txt主机名后再放回host.txt文件 1 www.kgc.com 2 mail.kgc.com 3 ftp.kgc.com 4 linux.kgc.com 5 blog.kgc.com 5. 统计/etc/fstab文件中每个文件系统类型出现的次数 6. 统计/etc/fstab文件中每个真单词出现的次数 7. 提取出字符串Yd$CM05MB%9Bdh7dqYVixp3vpw中的所有数字 8. 查出/tmp/的权限以数字方式显示 9. 查出用户UID最大值的用户名、UID及shell类型