特定字段值。如果我有以下格式的文件行的數量有限:如何打印具有AWK
a,city1
b,city1
.
.
z,city1
1,city2
2,city2
3,city2
.
.
10,city2
用awk,我可以印刷具有city2
city1
僅
3
記錄和
2
記錄
a,city1
b,city1
c,city1
1,city2
2,city2
或者我可以不用awk
?
特定字段值。如果我有以下格式的文件行的數量有限:如何打印具有AWK
a,city1
b,city1
.
.
z,city1
1,city2
2,city2
3,city2
.
.
10,city2
用awk,我可以印刷具有city2
city1
僅
3
記錄和
2
記錄
a,city1
b,city1
c,city1
1,city2
2,city2
或者我可以不用awk
?
哈克的方式來演示awk
的其他功能
$ awk -F, '/city[12]$/ && a[$2]++<4-substr($2,length($2),1)' file
a,city1
b,city1
c,city1
1,city2
2,city2
$ awk -F, 'BEGIN{n["city1"]=3; n["city2"]=2} ($2 in n) && (c[$2]++<n[$2])' file
a,city1
b,city1
z,city1
1,city2
2,city2
我假設你有比你的實際輸入city1和城2等第二字段的值,否則該解決方案更簡單:
$ awk -F, 'BEGIN{n["city1"]=3; n["city2"]=2} c[$2]++<n[$2]' file
a,city1
b,city1
z,city1
1,city2
2,city2
隨着grep
$ cat ip.txt
a,city1
b,city1
c,city1
d,city1
z,city1
1,city2
2,city2
3,city2
4,city2
10,city2
$ grep -m 3 'city1' ip.txt ; grep -m 2 'city2' ip.txt
a,city1
b,city1
c,city1
1,city2
2,city2
非常感謝您的幫助。 – user6817864
非常感謝您的幫助。 – user6817864
不客氣,請參閱http://stackoverflow.com/help/someone-answers並接受答案。 –