如何在特殊字符之间使用sed



如果键入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'

最新更新