Sed 替换html标记

Sed 替换html标记,sed,awk,Sed,Awk,我的HTML代码有下面一行 <TH>column1</TH><TH>column2</TH><TH>column3</TH> 这3个值需要在HTML代码的相应列中替换。列的数量可能会更改。您可以更改新列名的输入格式,还是只能使用echo。表格标题行是每个html文件显示一次,还是多次 对于您目前的情况,这将起作用: echo 'Name, Surname, City' | awk -F'<TH>|</TH

我的HTML代码有下面一行

<TH>column1</TH><TH>column2</TH><TH>column3</TH>

这3个值需要在HTML代码的相应列中替换。列的数量可能会更改。

您可以更改新列名的输入格式,还是只能使用
echo
。表格标题行是每个html文件显示一次,还是多次

对于您目前的情况,这将起作用:

echo 'Name, Surname, City' |
awk -F'<TH>|</TH><TH>|</TH>' 'NR==1{n=split($0,a,", *");OFS="";next}/<TH>/{for(i=1; i<=n;i++)$(i+1)="<TH>"a[i]"</TH>"}1' - file.html
echo“姓名、姓氏、城市”|

awk-F'| |''NR==1{n=split($0,a,“,*”);OFS=“”;next}/{for(i=1;i将替换项放入变量中,而不是执行echo,然后

sed 's|<TH>column1<\/TH>|<TH>Name</TH>|;s|<TH>column2</TH>|<TH>Surname</TH>|;s|<TH>column3</TH>|<TH>City</TH>|' file
sed的| column1 | Name | s | column2 |姓氏| s | column3 | City |文件

请注意,如果您的模式跨越多行,这并不是傻瓜式的。但是,如果您需要替换的所有内容都在一行上,那么就应该可以了。

谢谢。但是如何用新内容替换文件呢?sed有-I swith.awk?@shantanuo awk没有
-I
开关。这是执行此操作的标准方法(与大多数UNIX程序一样)类似于
awk'[…]”old.html>new.html&&mv new.html old.html
echo 'Name, Surname, City' |
awk -F'<TH>|</TH><TH>|</TH>' 'NR==1{n=split($0,a,", *");OFS="";next}/<TH>/{for(i=1; i<=n;i++)$(i+1)="<TH>"a[i]"</TH>"}1' - file.html
<TH>Name</TH><TH>Surname</TH><TH>City</TH>
sed 's|<TH>column1<\/TH>|<TH>Name</TH>|;s|<TH>column2</TH>|<TH>Surname</TH>|;s|<TH>column3</TH>|<TH>City</TH>|' file