替换html标签

发布于 2024-09-15 05:31:04 字数 434 浏览 5 评论 0原文

我的 HTML 代码有以下行。

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

我可以使用 sed 工具将column1 替换为“Name”,column2 替换为“Surname”...

<TH>Name</TH><TH>Surname</TH><TH>City</TH>

我的 shell 脚本的 echo 语句中有列的列表。

echo 'Name, Surname, City'

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

My HTML code has the following line.

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

Can I use sed tool to replace the column1 with "Name", column2 with "Surname" ...

<TH>Name</TH><TH>Surname</TH><TH>City</TH>

I have the list of the columns in a echo statement of my shell script.

echo 'Name, Surname, City'

These 3 values needs to be replaced in the respective columns in the HTML code. The number of columns might change.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

就像说晚安 2024-09-22 05:31:04

您能否更改新列名称的输入格式,或者您是否陷入了 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

输出:

<TH>Name</TH><TH>Surname</TH><TH>City</TH>

请注意,当您的输入 html 具有不同的形式(额外或缺少换行符)时,事情会变得非常错误。如果您想做任何更高级的事情,您应该使用适当的 SGML 解析器而不是 awksed

Can you change the input format of the new column names, or are you stuck with the echo. And does the table header line appear once per html file, or multiple times?

For your current situation, this would work:

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

Output:

<TH>Name</TH><TH>Surname</TH><TH>City</TH>

Note that things will go horribly wrong when your input html has a different form (additional or missing newlines). If you want to do anything more advanced you should use a proper SGML parser instead of awk or sed.

风流物 2024-09-22 05:31:04

将替换放入变量中而不是执行 echo,然后只需

sed 's|<TH>column1<\/TH>|<TH>Name</TH>|;s|<TH>column2</TH>|<TH>Surname</TH>|;s|<TH>column3</TH>|<TH>City</TH>|' file

注意,如果您的模式跨越多行,这并不是万无一失的。但如果你需要更换的所有东西都在一条线上,那么应该没问题。

put your replacements into variables instead of doing echo, then simply

sed 's|<TH>column1<\/TH>|<TH>Name</TH>|;s|<TH>column2</TH>|<TH>Surname</TH>|;s|<TH>column3</TH>|<TH>City</TH>|' file

Note, this is not fool proof if your pattern span multiple lines. But if all the things you need replaced is on one line, then it should be all right.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文