Splitting multiple fields of /usr/bin/id


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Splitting multiple fields of /usr/bin/id
# 1  
Old 03-30-2017
Splitting multiple fields of /usr/bin/id

Hi,

Iv got the following input
Code:
$id |grep uid
uid=6090(dsiddiq) gid=1(staff) groups=4001(cdgrp)

and Im using the below command to split the field to grab the numberical userid as well the alphabetical userid

Code:
$id|awk -F'=' '{print $2}'|awk -F')' '{print $1}'|awk -F'(' '{print $1" "$2}'
6090 dsiddiq

I wanna know is there a shorter way to to achieve the same result

I am on an AIX machine
# 2  
Old 03-30-2017
How about
Code:
id | awk '{gsub (/^.*=|\)/, "", $1); sub (/\(/, " ", $1); print $1}' 
1000 userid

This User Gave Thanks to RudiC For This Post:
# 3  
Old 03-30-2017
Does id on AIX have the -u and -n switches?
Code:
$ id -u;id -un
12345
apm

If not, please ignore.

Andrew
# 4  
Old 03-30-2017
@apmcd47, my AIX doesn't have the flags you suggested, but thanks anyway

Quote:
Originally Posted by RudiC
How about
Code:
id | awk '{gsub (/^.*=|\)/, "", $1); sub (/\(/, " ", $1); print $1}' 
1000 userid

hi, couple of questions

1.
Code:
/^.*=|

what does this mean in the regex part of gsub?

2.
Code:
^.*=|\)/, ""

in the gsub() function are you saying -> replace the occurrence of this regex with nothing or no space. I think you have replaced the occurrence of the regex with a space
Code:
" "

in the sub() function

3. You have used a semicolon to separate gsub() and sub(). Do semi colons work as the same way a pipe (|) does? I ran the gsub and sub separately and from what I could figure out, you are working on the output of gsub in sub().
# 5  
Old 03-30-2017
  1. /.../ is a regular expression; c.f. man awk: "Regular expressions are enclosed in slashes". A single / is pointless.
    ^ anchors the regex at begin-of-line (or string).
    .* represents "any char, zero or more times".
    = terminates this special regex. As we are sure there's only ONE = in $1, no additional measures need to be taken.
    | is the alternation operator ("or"), so multiple regexes can be matched
  2. Yes, that's why I used two function calls: for different results. If you accept leading and trailing spaces, try gsub (/^.*=|\)|\(/, " ", $1) and drop the sub.
  3. Semicolons separate commands in awk, as do line feeds. gsub modifies $1, then sub works on that mod'd $1
This User Gave Thanks to RudiC For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. BSD

FreeBSD: /usr/bin/ld not looking in /usr/local/lib

I'm not sure if this is the default behavior for the ld command, but it does not seem to be looking in /usr/local/lib for shared libraries. I was trying to compile the latest version of Kanatest from svn. The autorgen.sh script seems to exit without too much trouble: $ ./autogen.sh checking... (2 Replies)
Discussion started by: AntumDeluge
2 Replies

2. Shell Programming and Scripting

Splitting a filed into multiple fields using awk

Hi, I have a tab delimited file as below: AWA Divi DD01 None 1 2 Room AC 01-MAY-15 31-OCT-15 OT 01-MAY-15 31-OCT-15 CF 01-MAY-15 31-OCT-15 AW0 Beach DD02 None 1 2 Double AC 01-MAY-15 31-OCT-15 AD 01-MAY-15 31-OCT-15 The number of columns(fields) after 7th field is not fixed and... (3 Replies)
Discussion started by: Bobby_2000
3 Replies

3. Solaris

How to link sed from /usr/bin/sed to /usr/local/bin/sed?

Hi Guys, OS:- Solaris 10 64Bit I have a small query. On one server a user is facing sed command issue. He gets error regarding sed for this location /users/hoy/2999/batch5/bin/internal.sh: /usr/local/bin/sed: not found How ever the sed is actually present at this location on server:-... (13 Replies)
Discussion started by: manalisharmabe
13 Replies

4. Solaris

What is the difference between xpg4/bin and usr/bin?

Hi Experts, I found that the same commands(sort, du, df, find, grep etc.) exists in both dir. What is the difference to use them? i.e: to use xpg4/bin/grep and usr/bin/grep My OS version is SunOS 5.10 Regards, Saps (7 Replies)
Discussion started by: saps19
7 Replies

5. OS X (Apple)

When to use /Users/m/bin instead of /usr/local/bin (& whats the diff?)?

Q1. I understand that /usr/local/bin means I can install/uninstall stuff in here and have any chance of messing up my original system files or effecting any other users. I created this directory myself. But what about the directory I didn't create, namely /Users/m/bin? How is that directory... (1 Reply)
Discussion started by: michellepace
1 Replies

6. UNIX for Dummies Questions & Answers

Alias /usr/bin to /bin in profile

Hi! All the basic linux commands, ie. echo, find, etc, are located in /bin. I have a couple of programs that have these commands pointed towards /usr/bin, ie, /usr/bin/echo (even though the actual 'echo' command is in /bin). How can I alias or redirect or link the /usr/bin to /bin just for this... (6 Replies)
Discussion started by: dancerat
6 Replies

7. Solaris

How do I link ld in /usr/ucb/ to /usr/ccs/bin?

Hi all, below is the problem details: ora10g@CNORACLE1>which ld /usr/ucb/ld ora10g@CNORACLE1>cd /usr/ccs/bin ora10g@CNORACLE1>ln -s /usr/ucb/ld ld ln: cannot create ld: File exists ora10g@CNORACLE1> how to link it to /usr/ccs/bin? (6 Replies)
Discussion started by: SmartAntz
6 Replies

8. UNIX for Dummies Questions & Answers

Difference between /bin, /usr/bin, /sbin ?

Hi All, Can somebody tell me the difference between /bin, /usr/bin, /sbin ? Thanx in advance, Saneesh Joseph (3 Replies)
Discussion started by: saneeshjose
3 Replies

9. UNIX for Dummies Questions & Answers

/bin/sh: /usr/bin/vi: No such file or directory when doing crontab

I just set up an ftp server with Red Hat 5.2. I am doing the work, I'm baby stepping, but it seems like every step I get stuck. Currently, I'm trying to set up a crontab job, but I'm getting the following message: /bin/sh: /usr/bin/vi: No such file or directory. I see that vi exists in /bin/vi,... (3 Replies)
Discussion started by: kwalter
3 Replies
Login or Register to Ask a Question