Linux 命令之awk

作者: zzqsmile | 来源:发表于2018-05-08 16:49 被阅读0次

awk使用教程:

awk调用方式,常用三种

1.命令行调用(重点介绍)

常用格式框架:
awk -F ':' '/word/ { print(f) $1 }'
即:
awk -F ':' '/word/ { print $1 }'
awk -F ':' '/word/ { printf $1 }'
说明:

-F 指定分割符,如果没有指定分割符,默认使用空格作为分割符。
首先匹配word这个单词的那一行,然后以:分割符,print $1 输出第1个域。

基于上面的框架可以有其他变形,例如:
awk -F ':' '/word/ { print $1,$2 }'
awk -F ':' '/word1/ { print $1,$2 } /word2/ {print $2}'
awk -F ':' '/word1/ { printf $1." " } /word2/ {print $2}'

注:在awk命令使用中,print是输出之后换行,而printf是输出之后不换行。

例子:

题目:扫面一个网段中22端口开放的ip地址(使用awk命令)

step1:先扫描一个网段看一看我们关注的重点字段。
[root@localhost ~]# nmap -Pn -p22 192.168.3.0/24
图片.png
step2:过滤出IP地址和状态STATE,将其两项显示在一行。
[root@localhost ~]# nmap -Pn -p22 192.168.3.0/24 | awk '/Nmap/ {printf $5." "} /ssh/ {print $2}'
图片.png
step3:只将状态是open的IP地址显示出来
[root@localhost ~]# nmap -Pn -p22 192.168.3.0/24 | awk '/Nmap/ {printf $5." "} /ssh/ {print $2}' | awk '/open/ {print $1}'
图片.png
step4:可以将结果输出到一个txt文件里面。
[root@localhost ~]# :> 192.txt           #清空文件里面内容,不带任何字符
[root@localhost ~]# cat 192.txt
[root@localhost ~]# nmap -Pn -p22 192.168.3.0/24 | awk '/Nmap/ {printf $5." "} /ssh/ {print $2}' | awk '/open/ {print $1}' > 192.txt 
[root@localhost ~]# cat 192.txt 
192.168.3.3
192.168.3.36
192.168.3.104
192.168.3.110
192.168.3.113
192.168.3.119
192.168.3.145
[root@localhost ~]# 

当然平时扫描的时候可以先将扫面的东西输出到一个文件里面,在对其文件匹配显示,这样效率高点。
此题解法并不唯一,灵活多变,在此只是想借此题说明以下awk之功效!

2.shell脚本方式

将所有的awk命令插入到一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,一般通过键入脚本名称来调用。
相当于shell脚本首行的:#!/bin/bash
可以换成:#!/bin/awk

3.将所有的awk命令插入到一个单独的文件,然后调用:

awk -f awk-script-file input-file(s)

其中,-f选项加载awk-script-file中的awk脚本,input-file(s)是待处理的文件

相关文章

  • Linux

    linux awk命令详解、linux awk命令Linux常用操作指令Linux netstat命令详解 awk...

  • Linux命令学习之:awk命令

    Linux命令学习之:awk命令 简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk...

  • awk命令

    下文来自:美团 吴孟达更多AWK命令请参考:Linux awk 命令扩展:linux sort,uniq,cut,...

  • Linux | awk

    参考:http://www.runoob.com/linux/linux-comm-awk.html awk命令的...

  • Linux 学习笔记(十四):Linux 正则表达式基础

    grep 命令 作为linux中最为常用的三大文本(awk(Linux awk教程),sed(Linux sed教...

  • Linux的awk命令

    Linux的awk命令 众所周知awk命令是Linux一个非常重要又难以掌握的命令,下面对这个命令进行一个详细的说...

  • Linux 命令之 awk

    AWK 是一种优良的语言级的文本处理工具,是 Linux 环境中现有的功能最强大的数据处理引擎之一。其名称得自于它...

  • Linux命令之awk

    awk中使用shell命令awk '{cmd="rm "$0;system(cmd)}' filename.txt...

  • Linux命令之 awk

    本文主要介绍awk的入门,以及一些对应的小练习。 以如下文本进行练习: I、基本输出 awk '{[pattern...

  • Linux 命令之awk

    awk使用教程: awk调用方式,常用三种 1.命令行调用(重点介绍) 常用格式框架: 说明:-F 指定分割符,...

网友评论

    本文标题:Linux 命令之awk

    本文链接:https://www.haomeiwen.com/subject/fozirftx.html