Захват только части вывода команды

Я использовал GTK3 индикатор (глючит) с GTK2 один:

Открыть с правами суперпользователя файл /usr/share/dbus-1/services/indicator-sound.service (Mousepad является файловым редактором по умолчанию в Xubuntu, замените его на Gedit или Leafpad если необходимо):
gksu mousepad /usr/share/dbus-1/services/indicator-sound.service
Прокомментировать существующую строку (комментарий = добавить # в начале строки) и добавить эту строку под (это будет загружать индикатор GTK2, если XFCE запущен, а GTK3 - для Gnome / Unity / Другие):
Exec=/bin/sh -c 'if [ -n "$(ps -U $USER | grep xfce4-panel)" ]; then /usr/lib/indicator-sound-gtk2/indicator-sound-service;else /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service;fi'
В конце ваш файл должен выглядеть следующим образом:
[D-BUS Service]
Name=com.canonical.indicator.sound
#Exec=/usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
Exec=/bin/sh -c 'if [ -n "$(ps -U $USER | grep xfce4-panel)" ]; then /usr/lib/indicator-sound-gtk2/indicator-sound-service;else /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service;fi'

Вы также можете попробовать новые индикаторы, установив xfce4-goodies:

[ f4]

Еще один индикатор, как было предложено landroni, xfce4-mixer:

sudo apt-get install xfce4-mixer
1
задан 23 July 2016 в 14:57

6 ответов

ifconfig может исчезнуть в будущем, он устарел в некоторых Linux (возможно, некоторые версии ubuntu, но читайте дальше).

ip из пакета iproute2 (должен быть установлен по умолчанию) дает [!d1 ]

ip addr list

и может быть сокращен до

ip a

и объединен с

ip a | grep -o -P '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}(?=/)'

, чтобы фильтровать на всех IPv4 одинаковые номера со следующей косой чертой CIDR. Если вы не возражаете против трансляции, она даже работает в режиме -E grep, просто оставьте последние скобки от RegEx.

Если вы вообще хотите вырезать вывод cli и хотите избежать (как в этом примере, чтобы получить первое поле)

IPS=$(ip a | grep -o -E '([[:digit:]]{1,3}\.){3}[[:digit:]]{1,3}' | cut -d\  -f1 - )

вы могли бы использовать манипуляции с строкой bash (как в следующем примере):

echo ${SSH_CONNECTION%% *}

Это должно дать вам несколько подсказок, где и как начать.

4
ответ дан 23 May 2018 в 07:53
  • 1
    Ваш ответ в порядке, но его можно упростить до ip -4 -o addr | awk '{print $4}' , чтобы перечислить все адреса. Или $ ip -4 -o addr show wlan7 | awk '{print $4}' , чтобы показать только wlan7, например. -o делает выходной формат таким, что его легко обрабатывать через grep или awk, а -4 дает только адреса IPv4. – Sergiy Kolodyazhnyy 23 July 2016 в 01:29

Простой способ печати только IP-адреса независимо от интерфейса с помощью Grep; так как это был вопрос

ifconfig |grep -o -P '(?<=addr:).*(?= Bcast:)'

addr: начальная строка

Bcast - это конечная строка

Все, что между этими двумя строками печатается с использованием. *

1
ответ дан 23 May 2018 в 07:53

Использование facter:

facter ipaddress
1
ответ дан 23 May 2018 в 07:53

Простой способ печати только IP-адреса независимо от интерфейса с помощью Grep; так как это был вопрос

ifconfig |grep -o -P '(?<=addr:).*(?= Bcast:)'

addr: начальная строка

Bcast - это конечная строка

Все, что между этими двумя строками печатается с использованием. *

1
ответ дан 23 May 2018 в 07:53

Простой способ печати только IP-адреса независимо от интерфейса с помощью Grep; так как это был вопрос

ifconfig |grep -o -P '(?<=addr:).*(?= Bcast:)'

addr: начальная строка

Bcast - это конечная строка

Все, что между этими двумя строками печатается с использованием. *

1
ответ дан 23 May 2018 в 07:53

Простой способ печати только IP-адреса независимо от интерфейса с помощью Grep; так как это был вопрос

ifconfig |grep -o -P '(?<=addr:).*(?= Bcast:)'

addr: начальная строка

Bcast - это конечная строка

Все, что между этими двумя строками печатается с использованием. *

1
ответ дан 23 May 2018 в 07:53

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

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