Sponsored Content
Full Discussion: Help regarding shell script
Top Forums Shell Programming and Scripting Help regarding shell script Post 302492537 by Chubler_XL on Monday 31st of January 2011 08:54:20 PM
Old 01-31-2011
The format of ls -n output varies from system to system, can you supply a example output as the awk script will need to use substrings to extract the gid and uid but keep the other column spacing the same.

---------- Post updated at 11:54 AM ---------- Previous update was at 11:34 AM ----------

For my system UID + GID starts at char 16 and is 13 chars long below function is based on this, change S and L below for your ls output.

The script calculates the maximum UID and GID lengths in the system and adjusts column widths based on this. So beware if you add a new group or user to the system with a longer ID the column sizes in this output will change.

Code:
ls -nrt /my/path/to/directory | awk -vS=16 -vL=13 '
function max(a,b) {return a>b?a:b}
FNR==1 {file++}
file==1 {g[$3]=$1;GW=max(GW,length($1));next}
file==2 {p[$3]=$1;PW=max(PW,length($1));next}
{ split(substr($0,S,L), ID, " ");
  printf "%s %-*s %-*s%s\n", substr($0,1,S-1), PW, p[ID[1]], GW, g[ID[2]],substr($0,S+L)
}' FS=: /etc/group /etc/passwd -

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to Run a shell script from Perl script in Parent shell?

Hi Perl/UNIX experts, I have a problem in running a shell script from my perl script (auto.pl). I run the perl script using perl auto.pl from the shell prompt The shell script picks the files in "input" folder and procesess it. The shell script blue.sh has this code. export... (16 Replies)
Discussion started by: hifake
16 Replies

2. Shell Programming and Scripting

invoking a shell script inside cgi shell script

Hi, I have an HTML form through which I get some text as input. i need to run a shell script say script.sh inside a perl-cgi script named main_cgi.sh on the form input. I want to write the contents of the form in a file and then perform some command line operations like grep, cat on the text... (2 Replies)
Discussion started by: smriti_shridhar
2 Replies

3. Shell Programming and Scripting

How to use ssh execute other shell script on other host (shell script include nohup)?

i want use ssh on the host01 to execute autoexec.sh on the host02 like following : host01> ssh host02 autoexec.sh autoexec.sh include nohup command like follwing : nohup /home/jack/deletedata.sh & after i execute ssh host02 autoexec.sh one the host01. i can't found deletedata.sh... (1 Reply)
Discussion started by: orablue
1 Replies

4. Shell Programming and Scripting

call another shell script and pass parameters to that shell script

Hi, I basically have 2 shell scripts. One is a shell script will get the variable value from the user. The variable is nothing but the IP of the remote system. Another shell script is a script that does the job of connecting to the remote system using ssh. This uses a expect utility in turn. ... (2 Replies)
Discussion started by: sunrexstar
2 Replies

5. Shell Programming and Scripting

Correct shell script to Call One shell script from another shell script

Hi All, I have new for shell scripting. Problem : I have one scrip at serv1 and path of server is /apps/dev/provimage/scripts and script name:extract_ancillary.bat. I need to call this script at server2(my working server) and execute at server2 . Please let me know how to build the... (5 Replies)
Discussion started by: Vineeta Nigam
5 Replies

6. Shell Programming and Scripting

Unable to pass shell script variable to awk command in same shell script

I have a shell script (.sh) and I want to pass a parameter value to the awk command but I am getting exception, please assist. diff=$1$2.diff id=$2 new=new_$diff echo "My id is $1" echo "I want to sync for user account $id" ##awk command I am using is as below cat $diff | awk... (2 Replies)
Discussion started by: Ashunayak
2 Replies

7. UNIX for Dummies Questions & Answers

How to write Config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

8. Shell Programming and Scripting

How to write config shell script to pass variables in master shell script?

Dear Unix gurus, We have a config shell script file which has 30 variables which needs to be passed to master unix shell script that invokes oracle database sessions. So those 30 variables need to go through the database sessions (They are inputs) via a shell script. one of the variable name... (1 Reply)
Discussion started by: dba1981
1 Replies

9. Shell Programming and Scripting

Pass C shell array to another C shell script(csh) and shell(sh)

Dear Friends, Please help me on this my script name is send.csh In this i have written the statement like this set args = ( city state country price ) I want to pass this array to another c shell called receiver.csh. and i want to use it in this c shell or how to pass to... (2 Replies)
Discussion started by: SA_Palani
2 Replies

10. UNIX for Beginners Questions & Answers

Shell script newbie- how to generate service log from shell script

Hi, I am totally a newbie to any programming languages and I just started an entry level job in an IT company. One of my recent tasks is to create a script that is able to show the log file of linux service (i.e. ntpd service) lets say, if I run my script ./test.sh, the output should be... (3 Replies)
Discussion started by: xiaogeji
3 Replies
NEWUSERS(8)						    System Management Commands						       NEWUSERS(8)

NAME
newusers - update and create new users in batch SYNOPSIS
newusers [options new_users] DESCRIPTION
The newusers command reads a file of user name and clear-text password pairs and uses this information to update a group of existing users or to create new users. Each line is in the same format as the standard password file (see passwd(5)) with the exceptions explained below: pw_name:pw_passwd:pw_uid:pw_gid:pw_gecos:pw_dir:pw_shell pw_name This is the name of the user. It can be the name of a new user or the name of an existing user (or an user created before by newusers). In case of an existing user, the user's information will be changed, otherwise a new user will be created. pw_passwd This field will be encrypted and used as the new value of the encrypted password. pw_uid This field is used to define the UID of the user. If the field is empty, an new (unused) UID will be defined automatically by newusers. If this field contains a number, this number will be used as the UID. If this field contains the name of an existing user (or the name of an user created before by newusers), the UID of the specified user will be used. If the UID of an existing user is changed, the files ownership of the user's file should be fixed manually. pw_gid This field is used to define the primary group ID for the user. If this field contains the name of an existing group (or a group created before by newusers), the GID of this group will be used as the primary group ID for the user. If this field is a number, this number will be used as the primary group ID of the user. If no groups exist with this GID, a new group will be created with this GID, and the name of the user. If this field is empty, a new group will be created with the name of the user and a GID will be automatically defined by newusers to be used as the primary group ID for the user and as the GID for the new group. If this field contains the name of a group which does not exist (and was not created earlier wbefore by newusers), a new group will be created with the specified name and a GID will be automatically defined by newusers to be used as the primary group ID for the user and Gs the ID for the new group. pw_gecos This field is copied in the GECOS field of the user. pw_dir This field is used to define the home directory of the user. If this field does not specify an existing directory, the specified directory is created, with ownership set to the user being created or updated and its primary group. If the home directory of an existing user is changed, newusers does not move or copy the content of the old directory to the new location. This should be done manually. pw_shell This field defines the shell of the user. No checks are performed on this field. newusers first tries to create or change all the specified users, and then write these changes to the user or group databases. If an error occurs (except in the final writes to the databases), no changes are committed to the databases. During this first pass, users are created with a locked password (and passwords are not changed for the users which are not created). A second pass is used to update the passwords using PAM. Failures to update a password are reported, but will not stop the other password updates. This command is intended to be used in a large system environment where many accounts are updated at a single time. OPTIONS
The options which apply to the newusers command are: -h, --help Display help message and exit. -r, --system Create a system account. System users will be created with no aging information in /etc/shadow, and their numeric identifiers are chosen in the SYS_UID_MIN-SYS_UID_MAX range, defined in login.defs, instead of UID_MIN-UID_MAX (and their GID counterparts for the creation of groups). CAVEATS
The input file must be protected since it contains unencrypted passwords. CONFIGURATION
The following configuration variables in /etc/login.defs change the behavior of this tool: GID_MAX (number), GID_MIN (number) Range of group IDs used for the creation of regular groups by useradd, groupadd, or newusers. MAX_MEMBERS_PER_GROUP (number) Maximum members per group entry. When the maximum is reached, a new group entry (line) is started in /etc/group (with the same name, same password, and same GID). The default value is 0, meaning that there are no limits in the number of members in a group. This feature (split group) permits to limit the length of lines in the group file. This is useful to make sure that lines for NIS groups are not larger than 1024 characters. If you need to enforce such limit, you can use 25. Note: split groups may not be supported by all tools (even in the Shadow toolsuite). You should not use this variable unless you really need it. PASS_MAX_DAYS (number) The maximum number of days a password may be used. If the password is older than this, a password change will be forced. If not specified, -1 will be assumed (which disables the restriction). PASS_MIN_DAYS (number) The minimum number of days allowed between password changes. Any password changes attempted sooner than this will be rejected. If not specified, -1 will be assumed (which disables the restriction). PASS_WARN_AGE (number) The number of days warning given before a password expires. A zero means warning is given only upon the day of expiration, a negative value means no warning is given. If not specified, no warning will be provided. SYS_GID_MAX (number), SYS_GID_MIN (number) Range of group IDs used for the creation of system groups by useradd, groupadd, or newusers. SYS_UID_MAX (number), SYS_UID_MIN (number) Range of user IDs used for the creation of system users by useradd or newusers. UID_MAX (number), UID_MIN (number) Range of user IDs used for the creation of regular users by useradd or newusers. UMASK (number) The file mode creation mask is initialized to this value. If not specified, the mask will be initialized to 022. useradd and newusers use this mask to set the mode of the home directory they create It is also used by pam_umask as the default umask value. FILES
/etc/passwd User account information. /etc/shadow Secure user account information. /etc/group Group account information. /etc/gshadow Secure group account information. /etc/login.defs Shadow password suite configuration. /etc/pam.d/newusers PAM configuration for newusers. SEE ALSO
login.defs(5), passwd(1), useradd(8). System Management Commands 06/24/2011 NEWUSERS(8)
All times are GMT -4. The time now is 05:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy