2013-04-03 3 views
1

Существует файл post_check.ini мне нужен набор значений для:Как получить значение переменной из файла с помощью сценария оболочки?

Max_value=2 

Как мне получить значение 2 от Max_value?

+1

Возможный дубликат [Баш получить строку после символа] (HTTP : //stackoverflow.com/questions/15148796/bash-get-string-after-character) – tripleee

ответ

4

попробовать

grep -Po '(?<=Max_value=).*' post_check.ini 
+0

Это работает с одним изменением, я добавил awk '{print $ 1}', чтобы получить первую часть еще, чтобы она вернула целую строку , Но что, если я хочу вернуть значение, которое я получил value = $ (grep -Po '(? <= Max_value =). *' /usr/post_check.ini|awk '{print $ 1}') sed -i -r '/ Max_value = [0-9] +/Max_value = 0/g' /usr/master.ini echo "$ value" sed -i -r '/ Max_value = [0-9] +/Max_value = $ value/g '/usr/master.ini value = $ (grep -Po' (? <= Max_value =). * '/usr/master.ini|awk' {print $ 1} ') echo "$ value" Если я сброшу его до нуля и постараюсь вернуть его к старому значению. Как мне это сделать? – JumpOffBox

+0

@JumpOffBox grep может только извлекать данные. не может установить данные. вам может понадобиться awk/sed для этого. Но это будет еще один новый вопрос. Вы могли бы задать новый вопрос. Пожалуйста, не пишите большой блок-код в комментарии, его трудно прочитать. – Kent

2
Max_value=$(sed -n '/^Max_value=\([0-9]*\)$/s//\1/p' post_check.ini) 
+1

Точки для использования пустого шаблона после 's', но, может быть, просто' 's/^ Max_value = // p'', будут легче вводить и понимать. – tripleee

0

Вы могли бы найти полезным использовать надлежащий анализатор конфигурационного файла. Учитывая следующий .ini файл:

$ cat post_check.ini 
[section 1] 
Max_value=123 
[section 2] 
Max_value=456 

Следующая python скрипт выведет 123:

import ConfigParser, os 
config = ConfigParser.ConfigParser() 
config.read('post_check.ini') 
print config.get('section 1','Max_value') 

Это самый надежный и изменяемый путь, если вам нужно работать с конфигурационными файлами.

0

Я рекомендую использовать crudini, который является специализированным инструментом для управления INI файлы из оболочки

value=$(crudini --get /usr/post_check.ini section Max_value) 

Подробная информация об использовании и скачать по адресу: http://www.pixelbeat.org/programs/crudini/

Смежные вопросы