在red hat linux中使用sed替换文本

时间:2015-01-22 17:16:50

标签: linux sed

我在目录中有一些XML文件,它们都包含标记:<difficult>0</difficult>。我只想将其更改为<difficult>1</difficult>

我使用以下命令:

sed 's/difficult>0/difficult>1/g' *.xml

所有发生的事情都是显示所有文件的完整XML文本,difficult标记显示值为1,但实际文件没有任何反应。当我打开它们时,它们仍然包含<difficult>0</difficult>

3 个答案:

答案 0 :(得分:1)

是的,sed通常会将结果放在stdout上。要就地更改文件,请使用-i标志:

  -i[SUFFIX], --in-place[=SUFFIX]

          edit files in place (makes backup if SUFFIX supplied)

答案 1 :(得分:1)

再一次:)

不要使用正则表达式来解析HTML。使用适当的解析器&amp;

xml ed -L -u '//difficult/text()' -v "1" file

xml

检查:RegEx match open tags except XHTML self-contained tags

答案 2 :(得分:1)

sed -i 's/difficult>0/difficult>1/g' *.xml

Change a string in a file with sed?