# KSH Script Q.

**URL:** <https://community.unix.com/t/ksh-script-q/177986>\
**Category:** Shell Programming and Scripting\
**Created:** [November 21, 2007, 10:42am UTC](https://community.unix.com/t/ksh-script-q/177986 "2007-11-21T10:42:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![roadwest](https://community.unix.com/letter_avatar/roadwest/32/5_5575768a8748004e209b776fc1b2916d.png) [@roadwest](https://community.unix.com/u/roadwest)\
**Post date:** [November 21, 2007, 10:42am UTC](https://community.unix.com/t/ksh-script-q/177986/1 "2007-11-21T10:42:43Z")

</div>

Hi all,

Can anyone help me out with a simple awk routine (or alternative) that will  
read in and collate all the $1 values into a single line?

Input;  
4134,Bloggs,Joe,802437394  
4189,Bloggs,Joe,802437394  
3234,Soap,Joe,824324999  
4012,Bloggs,Joe,802437394  
3425,Soap,Joe,824324999  
1232,Blunt,James,803423421

Output;  
Bloggs,Joe,802437394,4134,4189,4012  
Soap,Joe,824324999,3234,3425  
Blunt,James,803423421,1232

---

<div class="post-metadata">

**Author:** ![vgersh99](https://community.unix.com/user_avatar/community.unix.com/vgersh99/32/14851_2.png) [@vgersh99](https://community.unix.com/u/vgersh99)\
**Post date:** [November 21, 2007, 11:01am UTC](https://community.unix.com/t/ksh-script-q/177986/2 "2007-11-21T11:01:21Z")

</div>

nawk -f road.awk myFile

road.awk

```nohighlight
BEGIN {
   FS=OFS=","
}
{
  idx=$2 OFS $3 OFS $4
  a[idx] = ( idx in a) ? a[idx] OFS $1 : $1
}
END {
  for(i in a)
    print i, a
}

```

---

<div class="post-metadata">

**Author:** ![roadwest](https://community.unix.com/letter_avatar/roadwest/32/5_5575768a8748004e209b776fc1b2916d.png) [@roadwest](https://community.unix.com/u/roadwest)\
**Post date:** [November 21, 2007, 3:17pm UTC](https://community.unix.com/t/ksh-script-q/177986/3 "2007-11-21T15:17:33Z")

</div>

Perfect. Thank you 🙂
