A bit convoluted, but unfortunately nawk doesn't deal too well with arrays of arrays - had to jump through hoops.
Assumption: the key is the FIRST field.
Code:
BEGIN { FS=OFS="^" ; FSlist=","}
function add2list( i,idx,n,cell,j,found,list)
{
for(i=2; i<= NF; i++) {
idx=$1 SUBSEP i
n=split(arr[idx], cell, SUBSEP)
for(j=1; j<=n; j++)
if ( $i == cell[j] ) { found=1; break }
if (!found) cell[++n] = $i
for(j=1; j<=n; j++)
list=(j>1) ? list SUBSEP cell[j] : cell[j]
arr[idx]=list
found=0
}
}
#-----------------------------------------------------------------------
{
add2list()
nf=NF
}
#-----------------------------------------------------------------------
END {
for (i in arr) {
split(i, idxA, SUBSEP)
printf("%s", idxA[1])
for(j=2; j<=nf; j++) {
idx=idxA[1] SUBSEP j
printf("%s", OFS)
if ( idx in arr ) {
n=split(arr[idx], vals, SUBSEP)
for(k=1; k <= n; k++)
printf("%s%s", vals[k], (k<n) ? FSlist : "")
delete arr[idx]
}
}
printf("\n")
}
}
Hi,
I posted this over at Macnn and was redirected here... I'm not a unix programmer at all, but I have some backup if needed. Thanks in advance for any input.
Is there a command for the osX terminal that will list sequentially numbered groups of file as one line instead of individually,... (1 Reply)
i have some 100's of files in the format .tar.gz. how to uncompress them in a single shot
i have sorted the files according to current date and now they reside in a dir called naveed1.
cd naveed1
ls -ltr
file1.tar.gz
file2.tar.gz
:
:
:
file100.tar.gz
how to uncompresse them in... (8 Replies)
i have some 350 files in a dir: i want to remove them in one shot,
ls -ltr | grep 'Sep 15' | head -350
the above command gives me those 350 files i need to remove them,how to implement remove logic here in this command?
i can get those 350 files using the above command only and therefore... (6 Replies)
I need to find all the files that have group Read or Write permission or files that have user write permission.
This is what I have so far:
find . -exec ls -l {} \; | awk '/-...rw..w./ {print $1 " " $3 " " $4 " " $9}'
It shows me all files where group read = true, group write = true... (5 Replies)
Hi,
I have a master file that i need to split into multiple files based on matched patterns. sample of my data as follows:-
scaff_1 a e 123 130 c_scaff_100
scaff_1 a e 132 138 c_scaff_101
scaff_1 a e 140 150 ... (2 Replies)
Hi I have 4 files in a folder and I am supposed to group and zip them via a mapping file as such:
Group. Filename
1. A.txt
1. B.txt
2. C.txt
2. D.txt
Result should be 2 zip files - 1.zip and 2.zip created with the contents being the text file.
How can... (7 Replies)
Dears
it is normal that the below binaries stay without any owner and group
I have checked it in many servers and the like the below
/usr/lpp/bos.net/inst_root/etc/ipsec# ls -lrt
total 248
-r-xr-xr-x 1 987 987 13589 Jun 29 2005 default_group
-r-xr-xr-x ... (5 Replies)
I have two directories of files (new-config-files and old-config-files):
new-config-files/this-db/config.inc.php
new-config-files/that-db/config.inc.php
new-config-files/old-db/config.inc.php
new-config-files/new-db/config.inc.php
new-config-files/random-database/config.inc.php
etc.
... (4 Replies)
Discussion started by: spacegoose
4 Replies
LEARN ABOUT MOJAVE
group
GROUP(5) BSD File Formats Manual GROUP(5)NAME
group -- format of the group permissions file
DESCRIPTION
The file </etc/group> consists of newline separated ASCII records, one per group, containing four colon ':' separated fields. These fields
are as follows:
group Name of the group.
passwd Group's encrypted password.
gid The group's decimal ID.
member Group members.
The group field is the group name used for granting file access to users who are members of the group. The gid field is the number associ-
ated with the group name. They should both be unique across the system (and often across a group of systems) since they control file access.
The passwd field is an optional encrypted password. This field is rarely used and an asterisk is normally placed in it rather than leaving
it blank. The member field contains the names of users granted the privileges of group. The member names are separated by commas without
spaces or newlines. A user is automatically in a group if that group was specified in their /etc/passwd entry and does not need to be added
to that group in the /etc/group file.
INTERACTION WITH DIRECTORY SERVICES
Processes generally find group records using one of the getgrent(3) family of functions. On Mac OS X, these functions interact with the
DirectoryService(8) daemon, which reads the /etc/group file as well as searching other directory information services to determine groups and
group membership.
FILES
/etc/group
SEE ALSO passwd(1), setgroups(2), crypt(3), getgrent(3), initgroups(3), passwd(5), DirectoryService(8)BUGS
The passwd(1) command does not change the group passwords.
HISTORY
A group file format appeared in Version 6 AT&T UNIX.
Mac OS X July 18, 1995 Mac OS X