В определении класса символов ]
воспринимается буквально, если непосредственно следует за ^
. Так что не избегайте этого. Также вам не хватает квантификатора, такого как +
, чтобы сказать «один или несколько символов», или *
, чтобы сказать «ноль или более символов». Кроме того, в вашей командной строке на один sed
слишком много.
$ echo 'a [test] b' | sed 's/\[[^]]\+\]/x/'
a x b
(\+
будучи расширением GNU (, теперь также поддерживается несколькими другими реализациями ), стандартный эквивалент —\{1,\}
)
или более читаемый:
$ echo 'a [test] b' | sed -E 's:\[[^]]+\]:x:'
a x b
(-E
является расширением BSD, теперь также поддерживаемым GNU sed
и некоторыми другими реализациями; используйте -r
в старых версиях GNUsed
).
Я проверил атрибуты Active Directory пользователя, который появлялся, и другого пользователя, который не появлялся.
Я обнаружил, что у пользователей, которые не отображались, отсутствовали gid, uid и uidNumber.
Если ввести эти значения и подождать несколько секунд, пока пользователь заполнит поля, отображается пользователь, когда на рядовом сервере используется команда getent passwd.