Как разделить & ldquo; / proc / * / environ & rdquo; файл в отдельных строках?

Я пытаюсь получить содержимое любого файла /proc/*PID*/environ в более читаемом формате. Я могу сделать это так, как показано ниже, но я уверен, что это не так.

$ cat "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spasTEXTDOMAIN=im-configXDG_SEAT=seat0XDG_SESSION_TYPE=waylandSHLVL=1QT4_IM_MODULE=ximHOME=/home/spasDESKTOP_SESSION=ubuntuGNOME_SHELL_SESSION_MODE=ubuntuDBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/busIM_CONFIG_PHASE=2LOGNAME=spasGTK_IM_MODULE=ibusJOURNAL_STREAM=9:147845_=/usr/bin/gnome-sessionUSERNAME=spasXDG_SESSION_ID=70PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/binXDG_RUNTIME_DIR=/run/user/1000LANG=en_US.UTF-8XDG_CURRENT_DESKTOP=ubuntu:GNOMEXDG_SESSION_DESKTOP=ubuntuXMODIFIERS=@im=ibusSHELL=/bin/bashGDMSESSION=ubuntuTEXTDOMAINDIR=/usr/share/locale/XDG_VTNR=2QT_IM_MODULE=ximPWD=/home/spasCLUTTER_IM_MODULE=ximXDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktopXDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" USER=spas^@TEXTDOMAIN=im-config^@XDG_SEAT=seat0^@XDG_SESSION_TYPE=wayland^@SHLVL=1^@QT4_IM_MODULE=xim^@HOME=/home/spas^@DESKTOP_SESSION=ubuntu^@GNOME_SHELL_SESSION_MODE=ubuntu^@DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus^@IM_CONFIG_PHASE=2^@LOGNAME=spas^@GTK_IM_MODULE=ibus^@JOURNAL_STREAM=9:147845^@_=/usr/bin/gnome-session^@USERNAME=spas^@XDG_SESSION_ID=70^@PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin^@XDG_RUNTIME_DIR=/run/user/1000^@LANG=en_US.UTF-8^@XDG_CURRENT_DESKTOP=ubuntu:GNOME^@XDG_SESSION_DESKTOP=ubuntu^@XMODIFIERS=@im=ibus^@SHELL=/bin/bash^@GDMSESSION=ubuntu^@TEXTDOMAINDIR=/usr/share/locale/^@XDG_VTNR=2^@QT_IM_MODULE=xim^@PWD=/home/spas^@CLUTTER_IM_MODULE=xim^@XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop^@XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg^@ $ cat -e "/proc/$(pgrep gnome-session -n -U $UID)/environ" | sed 's/\^@/\n/g' USER=spas TEXTDOMAIN=im-config XDG_SEAT=seat0 XDG_SESSION_TYPE=wayland ...

Возможно, мне нужно назначить определенное значение $IFS, но что это такое? Каков правильный способ достижения вышеуказанного результата?

8
задан 21 November 2017 в 13:35

33 ответа

Записи разделены нулевым символом, см. man 5 proc:

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

. Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
-0 - читать строки с нулевым ограничением, -L1 - читать одну строку за выполнение команды -a file читать строки из file, и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с [ f18] и -Z с помощью grep.

В качестве альтернативы вы можете использовать простой старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, [ f22] и -r предотвращают разделение поля и обратную косую черту, так что данные считываются как есть, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывается на новую строку в конце каждой строки с нулевым ограничением.

11
ответ дан 22 May 2018 в 16:02
  • 1
    +1 для значения по умолчанию для xargs для печати, я не знал об этом – Vincent Fourmond 22 November 2017 в 00:43
  • 2
    Имейте в виду, что записи имеют нулевое завершение точно , потому что это единственный символ, который не может быть частью значения. Если вы замените их на новые строки, вы можете ввести двусмысленность в отношении того, представляют ли две последовательные строки две переменные или одну переменную, значение которой содержит новую строку, за которой следует то, что похоже на присвоение. – chepner 22 November 2017 в 00:45

Записи разделены нулевым символом, см. man 5 proc:

/proc/[pid]/environ This file contains the environment for the process. The entries are separated by null bytes ('\0'), and there may be a null byte at the end.

. Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ LC_CTYPE=UTF-8 USER=muru LOGNAME=muru HOME=/home/muru MAIL=/var/mail/muru SHELL=/bin/zsh ... -0 - читать строки с нулевым ограничением, -L1 - читать одну строку за выполнение команды -a file читать строки из file, и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

В качестве альтернативы вы можете использовать простой старый bash:

while IFS= read -d '' -r line do printf "%q\n" "$line" done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные считываются как есть, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывается на новую строку в конце каждой строки с нулевым ограничением.

13
ответ дан 18 July 2018 в 02:53

Записи разделены нулевым символом, см. man 5 proc:

/proc/[pid]/environ This file contains the environment for the process. The entries are separated by null bytes ('\0'), and there may be a null byte at the end.

. Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ LC_CTYPE=UTF-8 USER=muru LOGNAME=muru HOME=/home/muru MAIL=/var/mail/muru SHELL=/bin/zsh ... -0 - читать строки с нулевым ограничением, -L1 - читать одну строку за выполнение команды -a file читать строки из file, и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

В качестве альтернативы вы можете использовать простой старый bash:

while IFS= read -d '' -r line do printf "%q\n" "$line" done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные считываются как есть, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывается на новую строку в конце каждой строки с нулевым ограничением.

13
ответ дан 24 July 2018 в 17:41

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 31 July 2018 в 12:01

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 31 July 2018 в 20:44

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 2 August 2018 в 13:50

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 3 August 2018 в 18:00

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 5 August 2018 в 03:09

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 6 August 2018 в 20:00

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 9 August 2018 в 00:27

Записи разделены нулевым символом, см. man 5 proc :

/proc/[pid]/environ
      This file contains the environment for the process.  The entries
      are separated by null bytes ('\0'), and there may be a null byte
      at  the  end.

Таким образом, простой способ заключается в применении к нему xargs -0 -L1:

$ xargs -0 -L1 -a /proc/self/environ
LC_CTYPE=UTF-8
USER=muru
LOGNAME=muru
HOME=/home/muru
MAIL=/var/mail/muru
SHELL=/bin/zsh
...
  • -0 - читать строки с нулевым ограничением,
  • -L1 - читать одну строку за выполнение команды
  • -a file читать строки из file
  • , и если команда не указана, xargs просто печатает строку.

Различные команды GNU имеют опции для работы с данными с нулевым ограничением: -z для sed, sort, uniq, grep и т. д. и для имен файлов -print0 с find и -Z с помощью grep.

Кроме того, вы можете используйте обычный старый bash:

while IFS= read -d '' -r line
do
    printf "%q\n" "$line"
done < /proc/.../environ

-d '' сообщает read читать до нулевого байта, IFS= и -r предотвращают разделение поля и обратную косую черту, так что данные read as-is, %q будет вызывать специальные символы на выходе.

Поскольку вы использовали sed, вы могли бы сделать:

sed -z 's/$/\n/' /proc/.../environ

, который просто накладывает на newline в конце каждой строки с нулевым ограничением.

13
ответ дан 14 August 2018 в 18:39
  • 1
    +1 для значения по умолчанию для xargs для печати, я не знал об этом – Vincent Fourmond 22 November 2017 в 00:43
  • 2
    Однако имейте в виду, что записи имеют нулевое завершение точно , потому что это единственный символ, который не может быть частью значения. Если вы замените их на новые строки, вы можете ввести двусмысленность в отношении того, представляют ли две последовательные строки две переменные или одну переменную, значение которой содержит новую строку, за которой следует то, что похоже на присвоение. – chepner 22 November 2017 в 00:45
Вы можете использовать cut:
cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
, используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки. Или фильтруйте через tr, переводя нули в строки новой строки:
tr '\0' '\n' </proc/$pid/environ
Или просто придерживайтесь своей sed версии ...
10
ответ дан 22 May 2018 в 16:02
  • 1
    Я использую tr '\0' '\n' с тех пор, как могу вспомнить. Это самый интуитивный способ выразить «замену всех NUL новыми символами» и, следовательно, мое личное предпочтительное решение. – egmont 21 November 2017 в 23:40

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Пример вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME
   strings - print the strings of printable characters in files.
ОПИСАНИЕ
   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 22 May 2018 в 16:02
Вы можете использовать cut: cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки. Или фильтруйте через tr, переводя нули в строки новой строки: tr '\0' '\n' </proc/$pid/environ Или просто придерживайтесь своей sed версии ...
10
ответ дан 18 July 2018 в 02:53

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Пример вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ GNOME_KEYRING_PID= LANGUAGE=en_US J2SDKDIR=/usr/lib/jvm/java-8-oracle LC_TIME=en_US.UTF-8 XDG_SEAT=seat0 XDG_SESSION_TYPE=x11 COMPIZ_CONFIG_PROFILE=ubuntu SESSION=ubuntu

man strings

NAME strings - print the strings of printable characters in files. ОПИСАНИЕ For each file given, GNU strings prints the printable character sequences that are at least 4 characters long (or the number given with the options below) and are followed by an unprintable character. By default, it only prints the strings from the initialized and loaded sections of object files; for other types of files, it prints the strings from the whole file. strings is mainly useful for determining the contents of non-text files.
5
ответ дан 18 July 2018 в 02:53
Вы можете использовать cut: cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки. Или фильтруйте через tr, переводя нули в строки новой строки: tr '\0' '\n' </proc/$pid/environ Или просто придерживайтесь своей sed версии ...
10
ответ дан 24 July 2018 в 17:41
  • 1
    Я использую tr '\0' '\n' с тех пор, как могу вспомнить. Это самый интуитивный способ выразить «замену всех NUL новыми символами» и, следовательно, мое личное предпочтительное решение. – egmont 21 November 2017 в 23:40

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Пример вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ GNOME_KEYRING_PID= LANGUAGE=en_US J2SDKDIR=/usr/lib/jvm/java-8-oracle LC_TIME=en_US.UTF-8 XDG_SEAT=seat0 XDG_SESSION_TYPE=x11 COMPIZ_CONFIG_PROFILE=ubuntu SESSION=ubuntu

man strings

NAME strings - print the strings of printable characters in files. ОПИСАНИЕ For each file given, GNU strings prints the printable character sequences that are at least 4 characters long (or the number given with the options below) and are followed by an unprintable character. By default, it only prints the strings from the initialized and loaded sections of object files; for other types of files, it prints the strings from the whole file. strings is mainly useful for determining the contents of non-text files.
5
ответ дан 24 July 2018 в 17:41
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 31 July 2018 в 11:03

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 31 July 2018 в 11:03
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 31 July 2018 в 12:01

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 31 July 2018 в 12:01
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 31 July 2018 в 20:44

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 31 July 2018 в 20:44

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 2 August 2018 в 13:50
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 3 August 2018 в 18:00
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 5 August 2018 в 03:09

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 5 August 2018 в 03:09
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 6 August 2018 в 20:00

Вы можете использовать strings следующим образом:

strings /proc/$(pgrep gnome-session -n -U $UID)/environ

Образец вывода:

$ strings /proc/$(pgrep gnome-session -n -U $UID)/environ
GNOME_KEYRING_PID=
LANGUAGE=en_US
J2SDKDIR=/usr/lib/jvm/java-8-oracle
LC_TIME=en_US.UTF-8
XDG_SEAT=seat0
XDG_SESSION_TYPE=x11
COMPIZ_CONFIG_PROFILE=ubuntu
SESSION=ubuntu

man strings

NAME

   strings - print the strings of printable characters in files.

ОПИСАНИЕ

   For each file given, GNU strings prints the printable character
   sequences that are at least 4 characters long (or the number given with
   the options below) and are followed by an unprintable character.  By
   default, it only prints the strings from the initialized and loaded
   sections of object files; for other types of files, it prints the
   strings from the whole file.

   strings is mainly useful for determining the contents of non-text
   files.
5
ответ дан 6 August 2018 в 20:00
  • Вы можете использовать cut:
    cut -d '' -f1- --output-delimiter=$'\n' /proc/$pid/environ
    
    , используя нуль в качестве разделителя, и вывод разделителя новой строки, необязательно выбирающий только определенные поля / строки.
  • Или фильтруйте через tr, перевод нулей в строки новой строки:
    tr '\0' '\n' </proc/$pid/environ
    
  • Или просто придерживайтесь версии sed ...
10
ответ дан 9 August 2018 в 00:27

Другие вопросы по тегам:

Похожие вопросы: