1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| # 擅长取列 1.取列 awk '{print $1}' test.txt # 取test。txt文件中的第一列 awk '{print $1,$NF}' test.txt #取第一列和做后一列(DF表示最后一列) 2.计算 awk '{print $1,$2*$3}' test.txt # 取test。txt文件中的第一列以及第二列乘第三列的积 awk '{print $1 的价格为 $2*$3}' test.txt # 中间数值之间可以加信息 3.根据行号来筛选数据 # a = 1表示变量值,让a=1 # a == 1,表示判断一下a的值是不是等于1,等于1那么条件判断结果为真,不等1那么条件判断结果为假 #支持符号: > < == >= <= [root@localhost~]# awk 'NR==1' 4.txt orange 10 20 [root@localhost~]# awk 'NR>2' 4.txt mongo 50 10 banana 52 00 [rootaloca1host~]# awk 'NR<=3' 4.txt orange 10 20 apple 20 30 mongo 50 10 [root@loca1host~]#awk 'NR<=3 && NR>1' 4.txt apple 20 30 mongo 50 10 #还可以取行的同时来取列 [root@localhost ~]# awk 'NR<=3{print $1}' 4.txt orange apple mongo 4.指定分隔符,默认是按照空格作为分隔符的 awk -F ":" '{print $7,$1}' /etc/passwd # passwd文件是用 :作为分隔符的 5.过滤文本 awk -F ':' '$1~/h/' /etc/passwd # 找出passwd文件中第一列含有"h"的每一行的所有数据 awk -F ':' '$1~/h/{print $2,$3}' /etc/passwd # 找出passwd文件中第一列含有"h"的每一行的第二三列数据
|