awk:是列处理工具,把一行提取出来,然后一列一列的对比,读取一行,处理一行。
sed:是行编辑器,无法取列,也是读取一行,处理一行。
-F 以什么为分隔符
{print $n} 打印第几列
如果{print } 里面是空格的情况下,则打印全文
例如
BEGIN{action....}{print } 先执行BEGIN{action...}再执行{print }
END表示最后执行
awk 支持标准输入
passwd有 39行,
awk也可当做计算器
用awk提第五列
awk本身就是以空格为分隔符,自动压缩空格一个及以
上的空格为分隔符 输入之后的样子:
举例说明
如果想改变直接的格式
利用awk提取ip地址
awk常见的内置变量
-v FS =-F
同时,在调用列与列中, 可以运用FS
例如
OFS:指定标准输出
RS:表示换行符
NF:代表字段的个数
NF:表示多少列 $NF:表示最后一列 倒数第二列:$(NF-1)
NR: 显示行号
本电脑有39行
利用NR 打印第二行 以及几行到几行
这边打印2到5行,可以使用NR大于等于2,小于等于5来表示 && 表示且的意思
找出uid号大于等于1000的普通用户(面试题)
FNR:表明把两个文本分开,分别打印行号
filename 显示文件名
小补充:
在awk中,非0为真,0为假
不打印第一行,因为第一行n的取值为0,因为电脑都是从0开始的,所以不打印第一行。第二行不等于0,为真 所以依次打印。
奇数:
在awk中,运用if语句
在awk中,使用for,while循环
数组(利用awk计算)
这里面是关联数组(下标不是数字,而是有特殊含义的)
i是变量,从数组student里面取值 ,最后打印数组的变量
如图,像过滤listen