2013-04-03 106 views

回答

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's/Max_value = [0-9] +/Max_value = 0/g'/usr/master.ini echo“$ value” sed -i -r's/Max_value = [0-9] +/Max_value = $ value/g'/usr/master.ini value = $(grep -Po'(?<= Max_value =)。*'/usr/master.ini|awk'{print $ 1}') 回声“$价值” 如果我重置它为零,并尝试将其设置回旧值我会怎么做? – 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') 

这是最可靠和可修改的方式,如果您需要配置文件的工作中去。

相关问题