The AWK Way
$ ls *txt
host1_root.txt host2_root.txt host3_root.txt host4_root.txt
$ paste *txt
usera usere userm userx
userb userx userx userw
userc userf usern usery
userd userg usero userz
userdx usery userp
userdy userh userx
userz userq
useri userqx
userj userr
userk userz
userl users
userx usert
usery
$ cat a.awk
#! /usr/bin/awk -f
BEGIN {
suffix="_root.txt"
len=length(suffix)
}
#
# print CR if first line in input file except first file
FNR==1 && NR>1 {
printf("\n")
}
#
# print hostname
FNR==1 {
host=substr(FILENAME, 0, length(FILENAME)-len)
printf("%s", host)
}
#
# print users, but exclude certain users
$0 !~ /^(userx|usery|userz)$/ {
printf(",%s", $0)
}
$ ./a.awk *.txt
host1,usera,userb,userc,userd,userdx,userdy
host2,usere,userf,userg,userh,useri,userj,userk,userl
host3,userm,usern,usero,userp,userq,userqx,userr,users,usert
host4,userw
Labels: awk, Cygwin, shell script



