如何用空行

时间:2017-02-02 10:49:22

标签: xml bash sed grep

cat fxmgr / wrapperwin32.xml | sed'// d'| sed'// d'> cleaned.xml

这将从xml文件中删除注释,但我想用空行替换注释,因为我不想打扰其他代码行号。

例如:

line one
xml comment
xml comment
line four

输出:

line one

line four

假设2和3在代码中有xml注释。我们只删除那些行并保持空行。 我无法在此处添加精确的xml评论。所以希望上面的内容澄清它。

评论中提供的真实示例:

1 <?xml version="1.0" encoding="UTF-8" ?>
2 <!---Students grades are uploaded by months----> 
3 <class_list> 
4 <student> 
5 <name>Tanmay</name> 
6 <grade>A</grade> 
7 </student> 
8 </class_list>

输出

1 <?xml version="1.0" encoding="UTF-8" ?> 
2 
3 <class_list> 
4 <student> 
5 <name>Tanmay</name> 
6 <grade>A</grade> 
7 </student> 
8 </class_list

目标:用空格替换注释行2的内容(和xml文件中的每个其他注释行类似于第2行)

3 个答案:

答案 0 :(得分:1)

要替换根据您的评论具有以下格式的xml文件的注释行:

2 <!---Students grades are uploaded by months----> 

您可以使用

sed 's/<!--.*-->/ /g' test.xml

s/:替换sed的操作(格式&#39; s / oldtext / newtext / g&#39;) 提示:作为新文本,我们只放一个空格。

/g:用于全局替换所有行。

您可以使用sed -i将更改应用于同一文件,也可以通过在sed命令的末尾附加>newfile.xml将输出重定向到另一个文件。

答案 1 :(得分:0)

从谷歌搜索我得到了。

这是删除XML文件中注释行的命令。

cat fxmgr/wrapperwin32.xml | sed '/<!--.*-->/d' | sed '/<!--/,/-->/d' > cleaned.xml

但是我想用空格替换这个注释。

答案 2 :(得分:0)

尝试使用正则表达式模式匹配来查找和删除。

cat fxmgr/wrapperwin32.xml | sed '/\/\//d' > cleaned.xml