我在目录中有一些XML文件,它们都包含标记:<difficult>0</difficult>
。我只想将其更改为<difficult>1</difficult>
。
我使用以下命令:
sed 's/difficult>0/difficult>1/g' *.xml
所有发生的事情都是显示所有文件的完整XML文本,difficult
标记显示值为1,但实际文件没有任何反应。当我打开它们时,它们仍然包含<difficult>0</difficult>
。
答案 0 :(得分:1)
是的,sed
通常会将结果放在stdout
上。要就地更改文件,请使用-i
标志:
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
答案 1 :(得分:1)
再一次:)
不要使用正则表达式来解析HTML。使用适当的解析器&amp; xpath:
xml ed -L -u '//difficult/text()' -v "1" file
xml
是xmlstarlet
答案 2 :(得分:1)
sed -i 's/difficult>0/difficult>1/g' *.xml