awk技巧-!a[$0]++
上一篇 / 下一篇 2012-04-06 00:24:18 / 个人分类:AWK学习
TAG:
- 引用 删除 abinNO1 / 2013-03-20 21:39:49
-
6、关联数组关联多个字段:
awk 'NR==FNR{a[$3]=$1" "$2}NR>FNR&&b=$6{print $0,a[b]}' b a
- 引用 删除 abinNO1 / 2013-03-20 21:39:15
-
1、将比较 file1的1-4字符 和 file2的2-5 字符,如果相同,将file2 的第二列 与 file1 合并
awk 'NR==FNR{a[substr($1,2,5)]=$2}NR>FNR&&a[b=substr($1,1,4)]{print $0, a[b]}' a b
- 引用 删除 abinNO1 / 2013-03-19 16:58:09
-
awk调用shell外部函数:
export -f getmacinfo
awk -v vi="$vi" -v vs="$hostid_ip $vmstate" 'BEGIN{while("getmacinfo '"$vd"'"|getline d){print vi,d,vs}}'
- 引用 删除 abinNO1 / 2012-05-25 14:31:31
-
打印某字符串对应列:
1、awk '{for(i=1;i<=NF;i++){if($i=="Country")print i}}' data.txt|xargs -i awk 'NR>1{print ${}}' data.txt
2、awk '/Country/{for(i=1;i<=NF;i++)if($i~/Country/)a=i}(a){print $a}' data.txt
- 引用 删除 abinNO1 / 2012-05-16 17:14:18
-
1、删除第一个字段重复的且第二个字段为0的行:
awk 'NR==FNR{a[$1]++;next}$2!=0||a[$1]==1' test.info test.info
PBCSPOFT0101 96
PBCSPOFT0102 6
PBCSPOFT0103 8
PBCSPOFT0104 0
PBCSPOFT0105 0
PBCSPOFT0106 0
PBCSPOFT0107 10
PBCSPOFT0108 0
- 引用 删除 abinNO1 / 2012-05-16 17:11:09
-
1、a[$1]在未声明之前为假。
2、第二次读取同一个文件的时候,a[$1]并不累加,而是直接饮用第一次读取文件的那个值。
awk 'NR==FNR{print NR,$0,a[$1],a[$1]++,a[$1]}NR>FNR{print NR,$0,a[$1]}' test.info test.info
1 PBCSPOFT0101 0 0 1
2 PBCSPOFT0101 96 1 1 2
3 PBCSPOFT0102 0 0 1
4 PBCSPOFT0102 6 1 1 2
5 PBCSPOFT0103 0 0 1
6 PBCSPOFT0103 8 1 1 2
7 PBCSPOFT0104 0 0 1
8 PBCSPOFT0105 0 0 1
9 PBCSPOFT0106 0 0 1
10 PBCSPOFT0107 0 0 1
11 PBCSPOFT0107 10 1 1 2
12 PBCSPOFT0108 0 0 1
13 PBCSPOFT0101 0 2
14 PBCSPOFT0101 96 2
15 PBCSPOFT0102 0 2
16 PBCSPOFT0102 6 2
17 PBCSPOFT0103 0 2
18 PBCSPOFT0103 8 2
19 PBCSPOFT0104 0 1
20 PBCSPOFT0105 0 1
21 PBCSPOFT0106 0 1
22 PBCSPOFT0107 0 2
23 PBCSPOFT0107 10 2
24 PBCSPOFT0108 0 1
我的栏目
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
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 |
我的存档
数据统计
- 访问量: 124343
- 日志数: 67
- 建立时间: 2010-12-07
- 更新时间: 2019-08-28