awk脚本与阵列分组 [英] awk script grouping with array

查看:179
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆