gpt4 book ai didi

python - 更改标签之间的文本 - shell 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 18:52:13 24 4
gpt4 key购买 nike

我有一个如下所示的 jsp 文件:

<font color="#121212">
<br>
Text 1
<br>
Text 2
<br>
</font>

有谁知道我可以在 shell 脚本中调用一个快速 sed/awk 命令来用预定义变量替换“文本 1”和“文本 2”? Text1/2 只是这个问题的占位符,<br> 之间的空格。标签可以填充任何内容。

更新:更改标签以允许在 python 中提供建议。

最佳答案

如果您有一些分隔符,您可以在替换文本 block 之间使用,例如换行符:

$ awk -v text="foo
bar" '
BEGIN {
split(text,t,/\n/)
}
/<br>/ {
if (++c in t) {
print $0 ORS t[c]
f = 1
}
else {
f = 0
}
}
!f
' file
<font color="#121212">
<br>
foo
<br>
bar
<br>
</font>

否则:

$ awk -v text1="foo" -v text2="bar" '
BEGIN {
t[++n]=text1
t[++n]=text2
}
/<br>/ {
if (++c in t) {
print $0 ORS t[c]
f = 1
}
else {
f = 0
}
}
!f
' file
<font color="#121212">
<br>
foo
<br>
bar
<br>
</font>

请注意,您可以在 -v/BEGIN 中添加任意数量的替换文本 block 。如果 <br> 之间有更多文本,则部分您将来需要替换的代码,其余代码不会更改 - 它只是替换数组 t 中填充的尽可能多的 block .

我看到一些使用 getline 发布的答案。确保您阅读并完全理解 http://awk.info/?tip/getline 中描述的所有 getline 警告。如果您正在考虑使用它。恕我直言,这个问题不适合使用 getline 解决。

关于python - 更改标签之间的文本 - shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18075364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com