Я пытаюсь разбираться в какой-то другой среде процессов, чтобы получить конкретный env var.
Итак, я пытался выполнить команду sed, например:
sed -n "s/\x00ENV_VAR_NAME=\([^\x00]*\)\x00/\1/p" /proc/pid/environ
Но я получаю как вывод полный файл окружения. Если я заменил \1 только статической строкой, я получу эту строку плюс весь файл окружения:
sed -n "s/\x00ENV_VAR_NAME=\([^\x00]*\)\x00/BLAHBLAH/p" /proc/pid/environ
Я должен просто получить "BLAHBLAH" в последнем примере. Этого не происходит, если я избавлюсь от нулевых символов и использую некоторые другие тестовые данные.
Это заставило меня попробовать преобразовать \x00 в\x01, что работает:
cat /proc/pid/environ | tr '\000' '\001' | sed -n "s/\x01ENV_VAR_NAME=\([^\x01]*\)\x01/\1/p"
Я пропустил что-то простое о седе здесь? Или я должен просто придерживаться этого обходного пути?