使用 grep|sed 反转参数的顺序进行更改



>我正在尝试在目录中使用 sed 进行批量更改,从 {{ form|as_bootstrap }}{% bootstrap_form form %} ,但"form"可以是任何名称,如"process_form"或"user_form"。

我找到了一个列出所有这些的 grep:grep -r '{{ [a-z_.]*^|as_bootstrap }}' ./

所以我正在尝试使用这个 grep/sed 命令,但它不起作用: grep -rl '{{ [a-z_.]*^|as_bootstrap }}' ./ | xargs sed -Ei s@'{{ ([a-z_.]*)^|as_bootstrap }}'@'{% bootstrap_form 1 %}'@g

你能指出我 sed 正则表达式中的错误吗?

你必须

转义{并在sed扩展模式(-E(中}。但您也可以使用 BRE 模式来避免转义卷曲制动器:

sed 's/{{ ([^|]*)|as_bootstrap }}/{% bootstrap_form 1 %}/'

最新更新