Sed:使用找到的字符串作为变量

时间:2011-09-19 13:49:46

标签: sed text-processing

我正在寻找替换表单的所有实例的方法:

model->variable

models[variable][index]

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

提前致谢。

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

1 个答案:

答案 0 :(得分:3)

如果将其封装在\(...\)中,则可以使用模式中的内容进行替换。然后使用\1插入第一个这样的括号所捕获的内容。

解决问题的一个天真的解决方案是:

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