1-27 awk 基本使用

大纲:

色彩:

awk基本使用

#####################################################

一、色彩:shell中,设置输出文本色彩(前景色,背景色)

在Shell中,可以给输出的字体设置颜色(前景色、背景色)

颜色


黑色


红色


绿色


黄色


蓝色


紫色


蓝色


白色


字体编码


30


31


32


33


34


35


36


37


背景编码


40


41


42


43


44


45


46


47

1、字背景色、字体颜色、字体效果可单独使用也可组合使用前后顺序没有关系,用英文的 ";" 隔开

2、字背景色、字体颜色、字体效果后面有一个m

3、字符串前后可以没有空格,如果有的话,输出也是同样有空格

实例:

echo -e "\033[30;47m 黑色字 \033[0m"

echo -e "\033[31m 红色字 \033[0m"

echo -e "\033[32m 绿色字 \033[0m"

echo -e "\033[33m 黄色字 \033[0m"

echo -e "\033[34m 蓝色字 \033[0m"

echo -e "\033[35m 紫色字 \033[0m"

echo -e "\033[36m 蓝色字 \033[0m"

echo -e "\033[37m 白色字 \033[0m"

二、awk基本使用

grep、sed、awk 文本处理工具,各有优缺

grep:主要用于文本过滤,相对于其他工具效率高

sed 流编辑器 默认只处理模式空间中的数据,以行为单位进行操作。

awk 报告生成器,将数据格式化后,显示出来。以列为单位进行操作。

awk命令由来:根据其三位作者而得名

Alfrd Aho 、 Peter Weinberger 、Brian Kernighan

可以进行正则表达式的匹配样式装入流控制数学运算符进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。最简单地说,AWK是一种用于处理文本的编程语言工具。

工程流程:

awk将文本逐行的读入内存中,不直接对文本进行处理,分片后,(默认空格符号为分隔符),输出结果,在内部引用位置变量,我们可以使用位置变量指定要输出的片段。

Usage: awk [options] ‘{print $1}‘ file ...

#支持位置参数

举例

输出第一个片段

awk ‘{print $1}‘ test.txt

 

awk的输出 print

1、当要输出多个变量时,print命令使用 {默认 ,“逗号”}分割,输出时,默认已空格分割

2、输出的item可以为字符串或数值、当前记录的字段(如$1)、变量或awk的表达式数值会先转换为字符串,而后再输出

3、print命令后面的item可以省略,此时其功能相当于print $0, 因此,如果想输出空白行,则需要使用print "";

实例:输出用户登录名和登录shell需指定输入分隔符为:

awk -v FS=: ‘{print $1,$7}‘ /etc/passwd

awk -F : ‘{print $1,$7}‘ /etc/passwd

awk命令常用变量:

FS   # 字段分隔符

OFS  # 输出字段分隔符

NF   # 当前记录分段数($NF 即本行最末尾一个字段)

RS   # 记录分隔符,默认是换行符

NR   # awk处理的记录数

FNR  # 当前处理行在当前文件中总共被处理的行数

BEGIN

END

实例:修改输出分隔符

字段分隔符的指定方式

awk -F : ‘{print $1}‘ /etc/passwd

#指定以”:“为分隔符

awk -v FS=: ‘{print $NF}‘ /etc/passwd

#指定以”:“为分隔符 -v表示声明一个变量

wk ‘BEGIN{FS=":"}{print $1,$3}‘ /etc/passwd

#在命令执行之前为变量赋值

awk -v OFS=: ‘{print $1,$2}‘ a.txt

#OFS 指定输出字段分隔符

用户自定义变量

gawk允许用户自定义自己的变量以便在程序代码中使用,变量名命名规则与大多数编程语言相同,只能使用字母、数字和下划线,且不能以数字开头。gawk变量名称区分字符大小写。

awk ‘BEGIN{var="xuegod test";print var}‘

#给变量赋值,并输出变量的值

awk -v var="xuegod test" ‘BEGIN{print var}‘

#给变量赋值并输出变量的值

实战:awk过滤数据(使用脚本实现,计算当前内存使用率)

[[email protected] ~]# vim mem.sh

#file ---> mem.sh

#!/bin/bash

limit=50

Mem=$(free -m | grep Mem | awk ‘{print $3}‘)

total=$(free -m | grep Mem | awk ‘{print $2}‘)

tmp=$(( 100 * $Mem / $total ))

echo "The Used Memery is $tmp%."

if [ $tmp -gt $limit ]

then

    echo " Be Carefull! "

fi

[[email protected] ~]# sh mem.sh

时间: 2024-11-10 01:08:23

1-27 awk 基本使用的相关文章

十条常用nmap命令行格式

1) 获取远程主机的系统类型及开放端口nmap -sS -P0 -sV -O <target>这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网-sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你关闭 ICMP pings.-sV 打开系统版本检测-O 尝试识别远程操作系统其它选项:-A 同时打开操作系统指纹和版本检测-v 详细输出扫描情况.nmap -sS -P0 -A -v < target > 2) 列出开放了指定端口的主

linux基础的一些常见问题总结_学习笔记

平时自己的总结(miscellaneous) oracle无法实现远程用户连接:  解决办法:       #sqlplus /nolog     SQL> connect / as sysdba    SQL> alter system set local_listener = '(ADDRESS = (PROTOCOL=TCP)(HOST=192.168.0.2)(PORT=1521)(SID=orcl))' scope=spfile;        SQL> shutdown im

十条nmap常用的扫描命令

NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的还是得靠大家自己学习,因为实在太强大了. 1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你

渗透测试方法整理

  一.端口扫描工具 Nmap 功能介绍及参数相关文档 1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你关闭 ICMP pings.-sV 打开系统版本检测-O 尝试识别远程操作系统 其它选项: -A 同时打开操作系统指纹和版本检测-v 详细输出扫描情况. nmap -sS -P0 -A

linux基础命令--笔记

linux基础命令--笔记 一.   1  . --help 命令简单帮助 2. man 查看命令复杂帮助  (非内置命令) 3  . help (bash的内置命令)如 :help cd  .help pwd   help  内置命令可用man cd  等查看. 4  . ls==list 查看目录列表 5 .  mkdir   == make directory  创建目录.例如:mkdir /date -p 递归创建目录 :mk 6  .  cd      ==change directo

Nmap命令的实用范例

1) 获取远程主机的系统类型及开放端口nmap -sS -P0 -sV -O <target>这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网-sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你关闭 ICMP pings.-sV 打开系统版本检测-O 尝试识别远程操作系统其它选项:-A 同时打开操作系统指纹和版本检测-v 详细输出扫描情况.nmap -sS -P0 -A -v < target > 2) 列出开放了指定端口的主

[转]nmap使用方法

1) 获取远程主机的端口信息和识别主机操作系统(Get info about remote host ports and OS detection)nmap -sS -P0 -sV -O <target>  < target > 可以是独立IP, 一个主机名 或一个子网-sS TCP SYN扫描(也叫半开或隐蔽扫描)-P0 选项允许你关闭ICMP ping-sV 选项启用版本检测-O 表示试图识别远程操作系统其它选项:-A 选项启用OS指纹和版本检测-v 使用两次-v查看细节信息n

nmap参数详解及使用方法

NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的还是得靠大家自己学习,因为实在太强大了. 1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你

nmap常用命令

NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的还是得靠大家自己学习,因为实在太强大了. 1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 -sS TCP SYN 扫描 (又称半开放,或隐身扫描)-P0 允许你

机器学习建议(转)

机器学习说简单就简单,说难就难,但如果一个人不够聪明的话,他大概很难知道机器学习哪里难.基本上要学习机器学习,先修课程是algebra, calculus, probability theory, linear regression.这几门科学好了再学Machine learning是事半功倍的.此外近代数学的东西也要懂, functional analysis啥的.其实不懂也行,只是现在文献总是喜欢引用里面的概念,懂一些读起来方便.(我就很讨厌manifold learning这个名字,把许多