我有一个这样的字符串:
uid=2560(jdihenia) gid=1000(undergrad)
我想将undergrad
部分放入变量名var1。所以我用了一个命令
var1=`echo "uid=2560(jdihenia) gid=1000(undergrad)" | cut -d "(" -f 3`
但这会将值undergrad)
分配给var1。您能否告诉我如何才能将undergrad
部分放入变量var1?
答案 0 :(得分:3)
如果此字符串来自id
,则您只需拨打id -gn
即可。
答案 1 :(得分:3)
如果您希望括号中的文字文本“undergrad”,则应该有效:
cut -d "(" -f 2 <text> | cut -d ")" -f 1
或等效
echo <text> | cut -d "(" -f 2 | cut -d ")" -f 1
答案 2 :(得分:3)
var1=$(cmd |sed 's/.*(\([^)]*\))/\1/')
答案 3 :(得分:2)
var1="uid=2560(jdihenia) gid=1000(undergrad)"
var1=${var1#*\(*\(}
var1=${var1%%\)*}
答案 4 :(得分:2)
echo "$str" | awk -F'[()]' '{print $4}'
答案 5 :(得分:1)
var1=$( echo "uid=2560(jdihenia) gid=1000(undergrad)" | grep -Po 'gid=.*\(\K.*(?=\))')