大纲:

色彩:

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过滤数据(使用脚本实现,计算当前内存使用率)

[root@xiaogan122 ~]# 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

[root@xiaogan122 ~]# sh mem.sh

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

  1. awk命令例子详解

    awk -F: '{print "Number of dields: "NF}' passwd 字段分隔符设为冒号,所以每条记录的字段数变成7: awk  '{print &quo ...

  2. awk常用命令

    1.统计TCP的连接数量,其中LISTEN多少个,ESTABLISHED多少个. [root@heiniao ~]# netstat -ant Active Internet connections ...

  3. 精通awk系列文章

    精通awk系列文章 我录制了两个awk相关的视频教程: Awk经典实战案例精讲 精通awk精品课程:awk从入门到精通 1.安装新版本的gawk 2.本教程测试所用示例文件 3.铺垫知识:读取文件的几 ...

  4. nmap十条常用命令行格式

    1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...

  5. nmap常用命令

    1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...

  6. 十条nmap常用的扫描命令

    NMap也就是Network Mapper,nmap是在网络安全渗透测试中经常会用到的强大的扫描器,功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的还是得靠大家自己学习,因为实在太强大了. ...

  7. nmap使用方法

      你是否曾想知道你所在局域网中哪些IP已经被使用了?还有哪些IP地址没有被使用?是否想知道某个IP地址下是什么系统…… 这些问题我们都可以使用一个nmap的工具解决,下面,就让我们开始了解nmap. ...

  8. Linux nmap命令详解

    nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的 ...

  9. [na]tcp&udp扫描原理(nmap常用10条命令)

    nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...

  10. nmap命令详解

    基础命令学习目录 原文链接:http://www.cnblogs.com/hongfei/p/3801357.html Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具. ...

随机推荐

  1. 模块讲解----sys

    sys:跟python解释器相关的信息 #命令行参数list,第一个元素时程序本身路径 print(sys.argv) 注意:执行脚本时,可以传参数. #退出程序,正常退出时exit(0) sys.e ...

  2. mysql数据库优化的几种方法

    1.选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快.因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽 ...

  3. Tornado 自定义Form,session实现方法

    一. 自定义Tornado 验证模块 我们知道,平时在登陆某个网站或软件时,网站对于你输入的内容是有要求的,并且会对你输入的错误内容有提示,对于Django这种大而全的web框架,是提供了form表单 ...

  4. JS正则表达式从入门到入土(7)—— 分组

    分组 在使用正则的时候,有时候会想要匹配一串字符串连续出现多次的情况,比如:我想匹配字符串Byron连续出现3次的情况. 有些人会直接写: Byron{3} 但是,这种情况仅仅会匹配Byro加上三个n ...

  5. [NOI2014]起床困难综合症(二进制+贪心)

    题目 [NOI2014]起床困难综合症 做法 先用全\(0\)和全\(1\)去运行一下,再在满足\(m\)的限制下,贪心地从高位到低位选择即可

  6. mouseleave mouseout时候悬浮框不应该消失的时候消失了 css 解决办法

    要实现的效果和代码思路 简单来说就是 用一个div包着喇叭和悬浮框 悬浮事件写在这个div上 鼠标悬浮到div上的时候 悬浮框出现 最终要做成鼠标从小喇叭移动到下面的框上的时候 下面框是不会消失的. ...

  7. web.xml filter配置

    filter介绍: filter主要用于对用户请求request进行预处理,和对Response进行后处理,是个典型的处理链. 详细解析起来就是:Filter对用户请求进行预处理,接着将请求HttpS ...

  8. ELK之elasticsearch5.6的安装和head插件的安装

    这里选择的elasticsearch为5.6的新版本,根据官方文档有几种暗装方式: https://www.elastic.co/guide/en/elasticsearch/reference/cu ...

  9. 20145322 《Java程序设计》第6周学习总结

    20145322 <Java程序设计>第6周学习总结 教材学习内容总结 第十章 10.1.1 串流设计的概念 Java将输入/输出抽象化为串流,数据有来源及目的地,衔接两者的是串流对象. ...

  10. 20145329吉东云 《Java程序设计》 第一周学习总结

    一.JAVA平台概述 1.Java诞生于1995年5月23日,java体系架构分为JavaSE.JavaME.JavaEE三大平台,本章重点介绍了JavaSE.JavaSE分为四个主要部分:JVM.J ...