Команды оболочки для соответствия пар ключ-значение - PullRequest
6 голосов
/ 25 февраля 2010

У меня есть файл, который содержит список из key=value пар, каждая в своей строке. Каков наилучший способ получить значение для указанного ключа с помощью команд оболочки?

Ответы [ 3 ]

6 голосов
/ 25 февраля 2010

а как же

grep "key" my_file | cut -d'=' -f2
1 голос
/ 25 февраля 2010
read -r -p "Enter key to fetch: " key
awk -vk="$key" -F"=" '$1~k{ print "value for "k" is "$2} ' file

выход

$ ./shell.sh
Enter key to fetch: key1
value for key1 is value1

или вы можете просто использовать оболочку (например, bash)

read -r -p "Enter key to fetch: " key    
while IFS="=" read -r k v
do
    case "$k" in
        *"$key"* ) echo "value of key: $k is $v";;
    esac
done <"file"
1 голос
/ 25 февраля 2010

Вот как я это делаю в кш.

FOO=$(grep "^key=" $filename | awk -F"=" '{print $2}')

Вы также можете использовать cut вместо awk. Если вы разделите пару ключей пробелом, вы можете опустить -F "=".

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