awk脚本与阵列分组 [英] awk script grouping with array
本文介绍了awk脚本与阵列分组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图在Solaris上执行以下awk脚本,但它给错误,如
AWK:近3行语法错误
AWK:救助近3号线
在哪里错误,你可以帮我解决?
输入文件:
$猫在Details.txt
Manager1 | SW1
Manager3 | SW5
Manager1 | SW4
Manager2 | SW9
Manager2 | SW12
Manager1 | SW2
Manager1 | SW0
输出要求:
组的相似(基于$ 1)字段($ 2)一起,即组工程师为根据一个特定的共同管理。即所需的输出:
Manager1 | SW1,SW4,SW2,SW0
Manager2 | SW9,SW12
Manager3 | SW5
awk的解决方案:
$ AWK'
BEGIN {FS = OFS =|}
!A [$ 1] {A [$ 1] = $ 0;下一个}
{A [$ 1] = A [$ 1],2 $}
END {了(我在一){打印[I]}
}在Details.txt
解决方案
的Solaris ......你可能需要运行NAWK而不是AWK。
i am trying to execute awk script below on solaris but it's giving error like
awk: syntax error near line 3
awk: bailing out near line 3
where is error can you help me to fix it ?
Input file:
$ cat details.txt
Manager1|sw1
Manager3|sw5
Manager1|sw4
Manager2|sw9
Manager2|sw12
Manager1|sw2
Manager1|sw0
Output required: Group the similar (based on $1) fields($2) together, i.e. group the engineers which are under a particular common manager. i.e. required output:
Manager1|sw1,sw4,sw2,sw0
Manager2|sw9,sw12
Manager3|sw5
Awk solution:
$ awk '
BEGIN {FS=OFS="|"}
!A[$1] {A[$1] = $0; next}
{A[$1] = A[$1] "," $2}
END {for(i in A) {print A[i]}
}' details.txt
解决方案
Solaris ... You probably need to run "nawk" instead of "awk".
这篇关于awk脚本与阵列分组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文