2011-09-19 47 views
0

我正在寻找一种方式来替换形式的所有实例:桑达:使用中发现的字符串作为变量

model->variable 

models[variable][index] 

其中变量可以是几乎任意组合字母和数字,可能定义为[0-9a-Z] {4,12}。 文中有数百个这样的变量。我需要知道发现的字符串“变量”的确切形式来替代使用它。有没有办法“记住”字符串并在以后使用?或者在这种情况下可以提供哪些其他方法/软件?

在此先感谢。

如果你可以将“变量”转换为大写,那就太棒了。

回答

3

你可以使用模式中的东西来替换,如果你把它放在\(...\)。然后,您使用\1来插入由第一个这种括号捕获的东西。

一个天真的解决问题的方法是这样的:

sed 's/model->\(.*\)/models[\1][index]/' file.txt