如何找到一个变量并将其替换为Perl中的其他变量?

时间:2015-12-03 10:17:56

标签: perl

我已尝试使用以下Perl命令查找<label>Any: <input ng-model="search.$"></label> <br> <label>Name only <input ng-model="search.name"></label><br> <label>Phone only <input ng-model="search.phone"></label><br> <label>Equality <input type="checkbox" ng-model="strict"></label><br> <table id="searchObjResults"> <tr><th>Name</th><th>Phone</th></tr> <tr ng-repeat="friendObj in friends | filter:search:strict"> <td>{{friendObj.name}}</td> <td>{{friendObj.phone}}</td> </tr> </table> 变量,并将其替换为$from_word文件中的$to_word变量。

$bat_file_path

但我收到错误

system("perl -i -p -e 's/$from_word/$to_word/ee' $bat_file_path");

它也没有按预期更换。

请帮助我解决这个问题。

Substitution replacement not terminated at -e line 4.

2 个答案:

答案 0 :(得分:1)

更改此行:

system("perl -i -p -e 's/"$from_word"/"$to_word"/ee' $bat_file_path");

system("perl -i -p -e 's/$from_word/$to_word/ee' $bat_file_path");

答案 1 :(得分:0)

  1. serenesat正确删除错误嵌套的引号。
  2. glenn jackman指向$from_word$to_word值中的行结尾是正确的。我建议不要将awk命令print \$(4)更改为printf "%s", \$(4),而不是删除它们。
  3. 最后,在system("perl -p -i -e 's/\r\n$/\n/g' $bat_file_path")命令中,\n$需要\ -escaping:system("perl -p -i -e 's/\r\\n\$/\\n/g' $bat_file_path")