次のように、いくつかのブロックを含むファイルがあります。
<start> test var=3333
<g>test=000000000000 tst <s>
<end>
...
<start> var=564735628
<title>somethink<\title>
<end>
...
そして、ループ内のセクションとセクションの間にブロックを取得する必要があります。次に、現在のブロックでいくつかのシンボルを取得する必要があります。私はこのようにしようとします:
for block in $(cat $file | sed -n '/<start>/,/<end>/p;'); do
echo $block
done
結果は次のとおりです。
<start>
代わりは
<start> test 1
<g>test=000000000000 tst <s>
<end>
さらに処理するためにブロック全体を取得するにはどうすればよいですか?
わかりました、ソースを説明しようとします
<start> test var=3333
<g>test=000000000000 tst <s>
<end>
あなたのコードの結果はブロックではありません。それはただの一刺しです。文字列は<end>t> test var=3333tst <s>
、ご覧のとおり、ブロックの文字列が互いに重なり合っています。