一开始我正在寻找一个Emacs命令,我发现query-replace-regexp
但是我没有找到如何用这个命令解决我的问题。
我正在寻找文件中的另一个字符串替换字符串。
我想替换它:
container random1-string {
由此:
container random1-string {
string:string-string 0;
或者这个:
容器1字符串{
由此:
容器1字符串{
string:string-string 0;
或者这个:
容器字符串-24 {
由此:
容器字符串-24 {
string:string-string 0;
random1-string
是一个随机字符串。
我正在寻找一个递归命令。我必须改变400个节点。
我可以使用每个linux命令。
答案 0 :(得分:0)
如果你的随机字符串没有特定的模式,那么很难使用正则表达式来有效地替换它。
您可以做的是列出要在文件中更改的变量名称( strings_list.in )
random1-string
random2-string
random3-string
然后循环文件并以下列方式更改源文件:
for v in `cat strings_list.in`;
do
sed -i "s/container\s+$v\{/container $v\{\nstring:string-string 0;/g" file_to_edit;
done;
在任何操作之前备份您的文件。
如果您的随机字符串实际上是变量,那么您可以在sed命令中使用以下正则表达式来处理该文件,并对其进行反向引用:
sed -i "s/container\s+([a-zA-Z_][a-zA-Z_0-9]*)\s*\{/container \1 \{\nstring:string-string 0;/g" file_to_edit;