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过滤数据(使用脚本实现,计算当前内存使用率)
[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 基本使用的更多相关文章
- awk命令例子详解
awk -F: '{print "Number of dields: "NF}' passwd 字段分隔符设为冒号,所以每条记录的字段数变成7: awk '{print &quo ...
- awk常用命令
1.统计TCP的连接数量,其中LISTEN多少个,ESTABLISHED多少个. [root@heiniao ~]# netstat -ant Active Internet connections ...
- 精通awk系列文章
精通awk系列文章 我录制了两个awk相关的视频教程: Awk经典实战案例精讲 精通awk精品课程:awk从入门到精通 1.安装新版本的gawk 2.本教程测试所用示例文件 3.铺垫知识:读取文件的几 ...
- nmap十条常用命令行格式
1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...
- nmap常用命令
1) 获取远程主机的系统类型及开放端口 nmap -sS -P0 -sV -O <target> 这里的 < target > 可以是单一 IP, 或主机名,或域名,或子网 - ...
- 十条nmap常用的扫描命令
NMap也就是Network Mapper,nmap是在网络安全渗透测试中经常会用到的强大的扫描器,功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的还是得靠大家自己学习,因为实在太强大了. ...
- nmap使用方法
你是否曾想知道你所在局域网中哪些IP已经被使用了?还有哪些IP地址没有被使用?是否想知道某个IP地址下是什么系统…… 这些问题我们都可以使用一个nmap的工具解决,下面,就让我们开始了解nmap. ...
- Linux nmap命令详解
nmap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的 ...
- [na]tcp&udp扫描原理(nmap常用10条命令)
nmap软件使用思路及常见用法 Nmap高级用法与典型场景 namp -sn 4种包 使用nmap -sn 查询网段中关注主机或者整个网段的IP存活状态 nmap -sn nmap针对局域网和广域网( ...
- nmap命令详解
基础命令学习目录 原文链接:http://www.cnblogs.com/hongfei/p/3801357.html Nmap即网络映射器对Linux系统/网络管理员来说是一个开源且非常通用的工具. ...
随机推荐
- TraClus java版实现
前一阵子我们部门接到了业务那边的一个需求.想通过用户的wifi数据计算出商场内用户最喜爱走的线路.其实说白了就是用户轨迹聚类.根据业务的需求,我们最终采用了traClus聚类算法.tra ...
- (转)VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径说明
$(RemoteMachine) 设置为“调试”属性页上“远程计算机”属性的值.有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置. $(References) 以分号分隔的引用列表被添 ...
- Django:学习笔记(9)——用户身份认证
Django:学习笔记(9)——用户身份认证 User
- Git-从远程仓库克隆
本人拜读了廖雪峰老师关于Git的讲述后整理所得 上次我们讲了先有本地库,后有远程库的时候,如何关联远程库. 现在,假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆. 首先,登陆Git ...
- spark关于join后有重复列的问题(org.apache.spark.sql.AnalysisException: Reference '*' is ambiguous)
问题 datafrme提供了强大的JOIN操作,但是在操作的时候,经常发现会碰到重复列的问题.在你不注意的时候,去用相关列做其他操作的时候,就会出现问题! 假如这两个字段同时存在,那么就会报错,如下: ...
- Safari中的input、textarea无法输入的问题
原因是这两种表单元素上应用了user-select:none的css属性.一般没人刻意这么做,可能是这样的情况: * { user-select: none; } 在css中排除掉这两种元素就好了: ...
- C语言基础温故
一.C语言中数组动态增长有哪些方法? 1.在原数组单元后面是没法再扩长的,因为后面的单元没法保证一定有.所以,数组原址动态增长肯定是不行的: 2.要么定义长一点的数组,要么自已把N个数组用链表串起来, ...
- [2012-12-18 14:59:31]AS3 常用正则表达式的总结-不用google了,我帮收集的很多了
正则表达式是一种通用的标准,大部分计算机语言都支持正则表达式,包括as3,这里转摘出了一些常用的正则表达式语句,大家用到的时候就不用自己写了.红色字体为常用正则:下面这个类是我自己写的一个示例,想必大 ...
- SQL.Mysql中Cast()函数的用法
比起orcale,MySQL相比之下就简单得多了,只需要一个Cast()函数就能搞定.其语法为:Cast(字段名 as 转换的类型 ),其中类型可以为: CHAR[(N)] 字符型 DATE 日期 ...
- kdump+crash
参考:http://www.360doc.com/content/19/0205/08/36367108_813163495.shtml https://blog.csdn.net/u01436103 ...









