sed命令不会在包含两个单词的字符串之后插入字符串

时间:2019-03-27 18:06:18

标签: bash sed

我出于教学目的创建了一个名为“ SectionOfFile.html”的文件,其内容如下:

<p class="c0"><span class="c2">1219. A Igreja viu na arca de No&eacute; uma prefigura&ccedil;&atilde;o da salva&ccedil;&atilde;o pelo Baptismo. Com feito, gra&ccedil;as a ela, um pequeno grupo, ao todo oito pessoas, foram salvas pela &aacute;gua (1 Pe 3, 20): Nas &aacute;guas do dil&uacute;vio, destes-nos uma imagem do Baptismo, sacramento da vida nova, porque as &aacute;guas significam ao mesmo tempo o fim do pecado e o princ&iacute;pio da santidade (14). </span></p> <p class="c0"><span class="c2">2058. As dez palavras resumem e proclamam a Lei de Deus: Estas palavras dirigiu-as o Senhor a toda a vossa assembleia sobre a montanha, do meio do fogo, da nuvem e das trevas, com voz forte, sem acrescentar mais nada: escreveu-as em duas t&aacute;buas de pedra e entregou-mas (Dt 5,22). Por isso &eacute; que estas duas t&aacute;buas s&atilde;o chamadas o testemunho (Ex 25, 16). De facto, elas cont&ecirc;m as cl&aacute;usulas da alian&ccedil;a conclu&ia
cute;da entre Deus e o seu povo. Estas t&aacute;buas do testemunho (Ex 31, 18; 32, 15; 34, 29) devem ser depositadas </span><span class="c5">{</span><span class="c2">&nbsp;na arca &nbsp;(Ex 25, 16: 40, 1-2).</span></p><p class="c0"><span class="c2">3345. Na arca fez, na arca cagou, na arca urinou e na arca escorregou.</span></p><p class="c0"><span class="c2">3348. Entrei numa arca feita de ferro, e na arca encontrei uma ferrugem.</span></p>

运行名为example.sh的外壳脚本时,其内容如下所示:

#!/bin/sh

ContentOfFile=`cat SectionOfFile.html | sed 's/<p class=/\n<p class=/g'`
Word="na arca"
ContentWithLFBeforeWordOccurrence=`echo "$ContentOfFile" | sed "s/${Word}/\n${Word}/g"`
MeaningOfWord="no navio de madeira"
CardinalNumberOfOccurrenceOfWord="4"
echo "$ContentWithLFBeforeWordOccurrence" | sed -r "${CardinalNumberOfOccurrenceOfWord}s/(${Word})/<span class=\"c5">\{<\/span><span class=\"c1\"> \1 <\/span><span class=\"c5\">\{ ${MeaningOfWord} \}\}<\/span><span class=\"c1\">/g" | sed -r 's/ +/ /g' | grep "na arca" > FinalFile.txt

生成FinalFile.txt文件,其内容如下所示:

na arca de No&eacute; uma prefigura&ccedil;&atilde;o da salva&ccedil;&atilde;o pelo Baptismo. Com efeito, gra&ccedil;as a ela, um pequeno grupo, ao todo oito pessoas, foram salvas pela &aacute;gua (1 Pe 3, 20): Nas &aacute;guas do dil&uacute;vio, destes-nos uma imagem do Baptismo, sacramento da vida nova, porque as &aacute;guas significam ao mesmo tempo o fim do pecado e o princ&iacute;pio da santidade (14). </span></p>
na arca &nbsp;(Ex 25, 16: 40, 1-2).</span></p>
na arca cagou,
na arca urinou e
na arca escorregou.</span></p>
na arca encontrei uma ferrugem.</span></p>

但是,我想要使用变量“ Word”,“ MeaningOfWord”和“ CardinalNumberOfOccurrenceOfWord”的结果;等于:

na arca de No&eacute; uma prefigura&ccedil;&atilde;o da salva&ccedil;&atilde;o pelo Baptismo. Com efeito, gra&ccedil;as a ela, um pequeno grupo, ao todo oito pessoas, foram salvas pela &aacute;gua (1 Pe 3, 20): Nas &aacute;guas do dil&uacute;vio, destes-nos uma imagem do Baptismo, sacramento da vida nova, porque as &aacute;guas significam ao mesmo tempo o fim do pecado e o princ&iacute;pio da santidade (14). </span></p>
na arca &nbsp;(Ex 25, 16: 40, 1-2).</span></p>
na arca cagou,
<span class="c5">{</span><span class="c1"> na arca </span><span class="c5">{ no navio de madeira }}</span><span class="c1"> urinou e
na arca escorregou.</span></p>
na arca encontrei uma ferrugem.</span></p>

该怎么办?

0 个答案:

没有答案