如果键入id user_name
,则得到uid=500(user_name)
。
如何使用sed
获取=
和(
之间的所有内容,以便获得500
?
我有sed -n ‘/=/,/(/p’
。
您可以将数字500
或任何整数值分组,并将其与sed 's/^uid=([0-9]*).*/1/'
一起返回。
@Rfroes87在评论中提供了一个很好的解决方案-sed 's/^uid=([0-9]*).*/1/'
但是你可以用很多不涉及另一个过程的方法来做到这一点。
您可能只需要使用类似$UID
或$uidalready present - check your env with
的集合`。
您可以使用read
-
IFS='=(' read x myUID x <<< $(id)
或者您可以使用步骤中的参数解析-
myUID="$(id)"
myUID="${myUID#*=}"
myUID="${myUID%%(*}"
您可以使用以下操作:sed 's_^uid=(.*)(.*$_1_g'