Перечислите все версии библиотеки с помощью удара

Я записал этот сценарий для получения номера версии всех libpcap библиотек по моей системе Ubuntu.

#!/bin/bash

allLIBs=$(ldconfig -p | grep libpcap)
echo "$allLIBs" | while IFS= read -r a; do
    loc=$(echo $a | awk '{print $4}')

    # resolve if a sym link
    if [[ -h $loc ]]; then
        loc_res=$(readlink -f $loc)
    fi

    # get lib name
    libName=$(basename $loc_res)

    echo "$loc"
    echo "    resolved to: $loc_res"
    echo "    lib name: $libName"
done

Вывод этого сценария на моей машине

/usr/local/lib/libpcap.so.1
    resolved to: /usr/local/lib/libpcap.so.1.8.0-PRE-GIT
    lib name: libpcap.so.1.8.0-PRE-GIT
/usr/lib/x86_64-linux-gnu/libpcap.so.0.8
    resolved to: /usr/lib/x86_64-linux-gnu/libpcap.so.1.5.3
    lib name: libpcap.so.1.5.3
/usr/local/lib/libpcap.so
    resolved to: /usr/local/lib/libpcap.so.1.8.0-PRE-GIT
    lib name: libpcap.so.1.8.0-PRE-GIT
/usr/lib/x86_64-linux-gnu/libpcap.so
    resolved to: /usr/lib/x86_64-linux-gnu/libpcap.so.1.5.3
    lib name: libpcap.so.1.5.3
  1. Как я могу получить число после так?
  2. Действительно ли это - корректный способ получить номер версии всех libpcap библиотек, установленных на моей машине?
2
задан 20 January 2016 в 21:08

1 ответ

Если Вы не уверены в количестве версий установленной библиотеки:

echo "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ 

, Если бы у Вас нет пробелов в пути к файлу, использующему всего xargs, был бы достаточен:

echo "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ 

, Если существует только одна версия:

readlink "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ <час> 

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)"
<час>

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)" | xargs -L 1 readlink

, Если существует только одна версия:

readlink "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ <час> 

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)"
<час>

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)" | \ while IFS= read -r lib; do readlink "$lib"; done

, Если бы у Вас нет пробелов в пути к файлу, использующему всего xargs, был бы достаточен:

echo "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ 

, Если существует только одна версия:

readlink "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ <час> 

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)"
<час>

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)" | xargs -L 1 readlink

, Если существует только одна версия:

readlink "$(ldconfig -p | grep -Eo '/[^ ]+libpcap[^ ]+ <час> 

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

)"
<час>

Для получения номера версии после so. используйте grep:

% grep -Eo '[0-9][^[:alpha:]]+ 

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

<<<'libpcap.so.1.5.3' 1.5.3

здесь мы получаем стартовое количество версии и затем продолжаем до конца, гарантирующего, что нет никаких промежуточных промежуточных буквенных символов.

2
ответ дан 2 December 2019 в 03:49

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

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