Linux 命令之awk

简介: awk使用教程:awk调用方式,常用三种1.命令行调用(重点介绍)常用格式框架:awk -F ':' '/word/ { print(f) $1 }'即:awk -F ':' '/word/ { print $1 }'awk -F ':' '/word/ { printf $1 }'说明:-F 指定分割符,如果没有指定分割符,默认使用空格作为分割符。

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
img_5f1dfd2a25f54816a0b43ed00312cab7.png
图片.png
step2:过滤出IP地址和状态STATE,将其两项显示在一行。
[root@localhost ~]# nmap -Pn -p22 192.168.3.0/24 | awk '/Nmap/ {printf $5." "} /ssh/ {print $2}'
img_9b60296b2b67c2772cff27a21f6eec96.png
图片.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}'
img_ed91987a2bd1dbc242b3eebcf75c96d2.png
图片.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)是待处理的文件

目录
相关文章
|
19天前
|
Linux 网络安全 Python
linux后台运行命令screen的使用
linux后台运行命令screen的使用
52 2
linux后台运行命令screen的使用
|
19天前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
131 3
|
25天前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
15天前
|
机器学习/深度学习 安全 网络协议
Linux防火墙iptables命令管理入门
本文介绍了关于Linux防火墙iptables命令管理入门的教程,涵盖了iptables的基本概念、语法格式、常用参数、基础查询操作以及链和规则管理等内容。
175 73
|
8天前
|
Linux Shell
Linux 中 Tail 命令的 9 个实用示例
Linux 中 Tail 命令的 9 个实用示例
31 6
Linux 中 Tail 命令的 9 个实用示例
|
13天前
|
Linux 应用服务中间件 nginx
|
6天前
|
存储 Linux 编译器
linux中vim介绍以及常用命令大全
linux中vim介绍以及常用命令大全
27 8
|
4天前
|
设计模式 Java Linux
Linux的20个常用命令
Linux的23个常用命令
Linux的20个常用命令
|
9天前
|
机器学习/深度学习 安全 网络协议
Web安全-Linux网络命令
Web安全-Linux网络命令
11 1
|
14天前
|
Ubuntu Linux Shell
Linux系统命令 安装和文件相关命令
本文档详细介绍了Linux系统中的常用命令,包括软件安装卸载命令如`dpkg`和`apt-get`,压缩与解压命令如`gzip`、`bzip2`和`xz`,以及`tar`命令用于打包和解包。此外还介绍了文件分割命令`split`,文件操作命令如`cat`、`head`、`tail`、`more`、`less`等,管道命令和`wc`、`grep`、`find`、`cut`、`sort`、`uniq`、`diff`等实用工具。最后,文档还讲解了文件属性相关的命令如`chmod`、`chown`、`chgrp`以及创建硬链接和软链接的`ln`命令。