Unix切割操作

时间:2010-11-14 22:53:46

标签: linux shell unix

我有一个这样的字符串:

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

我想将undergrad部分放入变量名var1。所以我用了一个命令

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

但这会将值undergrad)分配给var1。您能否告诉我如何才能将undergrad部分放入变量var1?

6 个答案:

答案 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.*(?=\))')