【发布时间】:2012-03-06 22:27:47
【问题描述】:
我正在尝试在 XML 文件中查找一些文本并仅删除包含该文本的行的一部分。
经过一些代码搜索后,我找到了这种格式来尝试:perl -p -i -e "s/$1/$2/g" $3。
所以我正在使用这个代码:
perl -p -i.bak -e "s/\'../../../specialText/\'//g" "C:/box/fileName.XML";
我想要做的是从内部单引号中删除所有内容,如下所示: '../../../specialText/',但使用 q() 或 \' 来转义引号不起作用,我不确定 ..'s are'也不会把事情搞砸。我猜不放任何东西作为文本替换会正确删除它,但我不确定。
错误是:
在 -e 第 1 行,“/specialText/\”附近的运算符预期位置找到反斜杠
(在 \? 之前缺少运算符) -e 第 1 行,“/specialText/\”附近的语法错误
- 在 -e 第 1 行的 EOF 之前的任何位置都找不到字符串终止符“'”。
如何重写这一行来实现这一点?
这行得通。
C:\box>perl -p -i.bak -e s/Copyright/bar/g Test.txt
我在另一个文件上尝试过,所以现在我只需要使用它来修改我的原始文件。
【问题讨论】:
标签: perl