Linux awk基础笔记

正则表达式含义与构成:用单个字符串来描述或者匹配一系列符合某个句法规则的字符串,一般是由普通字符与特殊字符组成

awk 选项 '模式或者命令{编辑指令}' 文件名 awk '//{print}'
awk -f 脚本文件 文件名

元字符 :

\ 转义
^ 以....开头
$ 以....结尾
. 任意符
* 匹配子表达式0次或多次
[list] 匹配列表里的一个字符 eg: go[ola]d 也只是匹配其中一个字符
[^list] 匹配任意一个不在列表里的一个字符
\{n,m\} 匹配前面的子表达式最小n到最大m次

扩展元字符:

+ 匹配前面子表达式1次以上
? 匹配前面子表达式0次或者1次
() 将括号中的字符串看成一个整体
| 以 或 的方式匹配

awk 内置变量:
FS 指定每行文本中的分隔断,不写分隔符默认空格
NF 处理当前文本的列数
NR 处理当前文本的行数
$0 处理当前行的整行内容
$n 处理当前的第n个字段

sort 排序命令
sort -r 反向排序
sort -n 以数值的大小排序,从大到小
uniq 去除重复项
uniq -c 在每行加上编号

公司实例:

使用awk 一条命令:提取IP并且编辑IP生成主机名,并且把IP中的 . 替换成 -   (生成的格式:用户名-IP-地址)

hostname `ifconfig | grep "inet addr:" | awk -F: 'NR==1 {print $2}'|awk -F" " '{print $1}'|awk -F. '{print "Dfs-"$1"-"$2"-"$3"-"$4"-BJ"}'`

猜你喜欢

转载自www.cnblogs.com/Dfengshuo/p/9395677.html