在 red hat linux 中使用 sed 替换文本
Using sed in red hat linux to replace text
我在一个目录中有一些 XML 个文件,它们都包含标签:<difficult>0</difficult>
。我只想将其更改为 <difficult>1</difficult>
.
我正在使用以下命令:
sed 's/difficult>0/difficult>1/g' *.xml
所发生的只是显示所有文件的完整 XML 文本,difficult
标签显示值为 1,但实际文件没有任何反应。当我打开它们时,它们仍然包含 <difficult>0</difficult>
.
是的,sed
通常把它的结果放在stdout
上。要就地更改文件,请使用 -i
标志:
-i[SUFFIX], --in-place[=SUFFIX]
edit files in place (makes backup if SUFFIX supplied)
再来一次 :)
不要使用正则表达式来解析 HTML。使用合适的解析器 & xpath :
xml ed -L -u '//difficult/text()' -v "1" file
xml
是 xmlstarlet
检查:RegEx match open tags except XHTML self-contained tags
sed -i 's/difficult>0/difficult>1/g' *.xml
Change a string in a file with sed?
我在一个目录中有一些 XML 个文件,它们都包含标签:<difficult>0</difficult>
。我只想将其更改为 <difficult>1</difficult>
.
我正在使用以下命令:
sed 's/difficult>0/difficult>1/g' *.xml
所发生的只是显示所有文件的完整 XML 文本,difficult
标签显示值为 1,但实际文件没有任何反应。当我打开它们时,它们仍然包含 <difficult>0</difficult>
.
是的,sed
通常把它的结果放在stdout
上。要就地更改文件,请使用 -i
标志:
-i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied)
再来一次 :)
不要使用正则表达式来解析 HTML。使用合适的解析器 & xpath :
xml ed -L -u '//difficult/text()' -v "1" file
xml
是 xmlstarlet
检查:RegEx match open tags except XHTML self-contained tags
sed -i 's/difficult>0/difficult>1/g' *.xml
Change a string in a file with sed?