gpt4 book ai didi

bash - 在两个带有字符 X 的字符串之间更改文件中的字符串

转载 作者:行者123 更新时间:2023-11-29 09:46:30 25 4
gpt4 key购买 nike

<分区>

我想用相同数量的 X 替换标签之间的值。例如

1.

<Name> Jason </Name>
to
<Name> XXXXX </Name>

2。 (看不到空格)

 <Name>Jim</Name>
to
<Name>XXX</Name>

3.

<Name Jason /> 
to
<Name XXXXX />`

4.

<Name Jas />
to
<Name XXX />

起始标签、值和结束标签都可以在不同的行中

5.

<Name>Jim
</Name>
to
<Name>XXX
</Name>

6.

<Name>
Jim
</Name>
to
<Name>
XXX
</Name>

7.

  <Name
Jim
/>
to
<Name
XXX
/>

8.

<Name> Jason </Name> <Name> Ignacio </Name>
to
<Name> XXXXX </Name> <Name> XXXXXX </Name>

9.

<Name> Jason Ignacio </Name>
to
<Name> XXXXX XXXXXXX </Name>
or
<Name> XXXXXXXXXXXXX </Name>

都很好

我试过了,没用

file=mylog.log
search_str="<Name>"
end_str="</Name>"
sed -i -E ':a; s/('"$search_str"'X*)[^X'"$end_str"']/\1X/; ta' "$file"

请让我知道如何在 bash 脚本中执行此操作....

更新:

我也试过这个,但对 6 和 7 个案例都不起作用。案例 1 到 5 有效。

sed -i -E '/<Name>/{:a; /<\/Name>/bb; n; ba; :b; s/(<Name>X*)[^X\<]/\1X/; tb; }' "$file"
sed -i -E '/<Name[[:space:]]/{:a; /\/>/bb; n; ba; :b; s/(<Name[[:space:]]X*)[^X\/]/\1X/; tb; }' "$file"

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