I need to replace every character a
between xx
and zz
with hello
:
#input
a xxab abzz ca xxbczz aaa axxazza xxczzaxxczz
#output
a xxhellob hellobzz ca xxbczz aaa axxhellozza xxczzaxxczz
This works for one pair, it doesn't work for more xx/zz
pairs (it replaces every a
between the first xx
and last zz
):
sed -r ':rep; s/(xx.*)a(.*zz)/1hello2/; trep'
I assume the best approach is to use more advanced regex, such as perl
.
I am looking for a solution in bash
, sed
, awk
or perl
. Is this task even possible with basic/extended regex? Solutions that will not become hard to digest when the pairs have more characters (for example xxxxxx/zzzzzz
) are preferred.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…