Unix Cut Operation

I have a line like this:

uid=2560(jdihenia) gid=1000(undergrad)

I want to just get the part undergradfor var1 variable. Therefore, I used the command

var1=`echo "uid=2560(jdihenia) gid=1000(undergrad)" | cut -d "(" -f 3`

but it will assign the value undergrad)in to in var1. Could you tell me how can I get only the part undergradin var1 variable?

+3
source share
6 answers

If you want the literal text "undergrad" in brackets, this should work:

cut -d "(" -f 2 <text> | cut -d ")" -f 1

or equivalent

echo <text> | cut -d "(" -f 2 | cut -d ")" -f 1
+3
source

If this line matters id, you can just call id -gn.

+3
source
var1=$(cmd |sed 's/.*(\([^)]*\))/\1/')
+3
var1="uid=2560(jdihenia) gid=1000(undergrad)"
var1=${var1#*\(*\(}
var1=${var1%%\)*}
+2

echo "$str" | awk -F'[()]' '{print $4}'

+2
var1=$( echo "uid=2560(jdihenia) gid=1000(undergrad)" | grep -Po 'gid=.*\(\K.*(?=\))')
+1

Source: https://habr.com/ru/post/1774833/


All Articles