Sponsored Content
Top Forums Shell Programming and Scripting Again integrate files - bash script Post 302279058 by Annihilannic on Wednesday 21st of January 2009 11:01:41 PM
Old 01-22-2009
Why do you call them CSV (comma separated values) when they are separated by semi-colons? :-)

This messy awk script should do the trick, however it doesn't come out in exactly that order; you could do some sorting if you wish:

Code:
awk '
  function printgroup(group) {
    # for each user in this group
    for (u in user) {
      split(u,a,SUBSEP)
      if (a[1]==group) {
        # print the user and all paths in this group
        for (i=1; i<=pathcount; i++) {
          print user[u],useryesno[u],paths[i]
          split(user[u],a,FS)
          # if there is a specific path for this user, print it too
          if (a[1] in specificpaths) {
            split(specificpaths[a[1]],b,FS)
            print user[u],useryesno[u],group,b[2],b[3],""
            delete specificpaths[a[1]]
          }
        }
      }
    }
    pathcount=0
  }
  BEGIN { FS=OFS=";" }
  # found a group name, remember it
  FNR==NR && /^@/ { group=$1; next }
  # found a user, add it and its rights to the group
  FNR==NR {
    user[group,++groupcount[group]]=$1
    useryesno[group,groupcount[group]]=$2
    next
  }
  # found a group in the second file
  /^@/ {
    # if it is the next group, print out the previous group
    if (FNR > 1 && $1 != prevgroup) { printgroup(prevgroup) }
    # build an array of paths in this group
    paths[++pathcount]=$0
    print
    prevgroup=$1
    next
  }
  # remember specific path entries for a user
  { specificpaths[$1]=$0 }
  END { printgroup(prevgroup) }
' file1 file2

 

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Renaming files in a bash script

I'm doing a short batch script to compile po files producing output binary mo files. The compilation command is: msgfmt -o file.mo file.po so in order to compile I am appending .mo to the varible in a loop. It goes something like this: for i in `find . -name "*.po"` do echo... (2 Replies)
Discussion started by: Breen
2 Replies

2. Shell Programming and Scripting

Bash script - integrate two files

I wrote script in bash which generates this report "users.csv": I wrote script in bash which generates this report "groups.csv" I want to integate two reports: "users.csv" and "groups.csv". I want like so that "result.csv": Thx (5 Replies)
Discussion started by: patrykxes
5 Replies

3. Shell Programming and Scripting

bash script to copy files

hey everyone, new here i have arch setup and i am using smbnetfs to mount some windows shares in /mnt/smbnet what i want to do is copy files from my home dir to a dir in /mnt/smbnet but i also need it to remove files if i have deleted them from my home dir seems that cp would be the... (8 Replies)
Discussion started by: dodgefan67
8 Replies

4. UNIX for Dummies Questions & Answers

Bash script to sort files

I've got a disorganized list of items and quantities for each. I've been using a combination of grep and sort to find out how much to buy of each item. I'm tired of having to constantly using these commands so I've been trying to write a shell script to make it easier, but I can't figure out how... (3 Replies)
Discussion started by: PTcharger
3 Replies

5. Shell Programming and Scripting

Bash script deleting my files, and editing files in subdirectories question

#!/bin/bash # name=$1 type=$2 number=1 for file in ./** do if then filenumber=00$number elif then filenumber=0$number fi tempname="$name""$filenumber"."$type" if (4 Replies)
Discussion started by: TheGreatGizmo
4 Replies

6. Shell Programming and Scripting

Renumbering files bash script

I am new to the world of Linux scripting, and would like to make the following 2 scripts: I have 67 files named Alk-0001.txt to Alk-0067.txt I would like them to be numbered Alk-002.txt to Alk-0134.txt eg Alk-0001.txt > Alk-0002.txt Alk-0002.txt > Alk-0004.txt Alk-0003.txt > Alk-0006.txt ... (3 Replies)
Discussion started by: tollyboy_uk
3 Replies

7. Shell Programming and Scripting

Bash script for check files

I created this script for check whether specific files exist or not in the given location. but when I run this its always showing Failed - Flag_lms_device_info_20160628.txt do not exist Failed - Flag_lms_weekly_usage_info_20160628.txt do not exist but both files are existing. appreciate help... (2 Replies)
Discussion started by: lfreez
2 Replies

8. Web Development

Help to integrate Shell script with PHP

I have a shell script which takes user name and server name from the user and check the authentication type on that server like LDAP or VAS or local. It also provides various other info also such as owner of the ID and etc. I need this script to work on the browser where user can directly input... (2 Replies)
Discussion started by: Bhuwan Nazkani
2 Replies

9. Shell Programming and Scripting

How to integrate all the systemctl commands into a shell script to verify any daemon/agent service?

Hi, Can we integrate all the systemctl command into a shell script to verify any service with all the options of systemctl if service integrate with the operating system service management tools to deliver their functionality. sudo systemctl start <service_name> sudo systemctl stop... (1 Reply)
Discussion started by: Mannu2525
1 Replies
GSHADOW(5)						   File Formats and Conversions 						GSHADOW(5)

NAME
gshadow - shadowed group file DESCRIPTION
/etc/gshadow contains the shadowed information for group accounts. This file must not be readable by regular users if password security is to be maintained. Each line of this file contains the following colon-separated fields: group name It must be a valid group name, which exist on the system. encrypted password Refer to crypt(3) for details on how this string is interpreted. If the password field contains some string that is not a valid result of crypt(3), for instance ! or *, users will not be able to use a unix password to access the group (but group members do not need the password). The password is used when a user who is not a member of the group wants to gain the permissions of this group (see newgrp(1)). This field may be empty, in which case only the group members can gain the group permissions. A password field which starts with an exclamation mark means that the password is locked. The remaining characters on the line represent the password field before the password was locked. This password supersedes any password specified in /etc/group. administrators It must be a comma-separated list of user names. Administrators can change the password or the members of the group. Administrators also have the same permissions as the members (see below). members It must be a comma-separated list of user names. Members can access the group without being prompted for a password. You should use the same list of users as in /etc/group. FILES
/etc/group Group account information. /etc/gshadow Secure group account information. SEE ALSO
gpasswd(5), group(5), grpck(8), grpconv(8), newgrp(1). shadow-utils 4.5 01/25/2018 GSHADOW(5)
All times are GMT -4. The time now is 10:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy