Witam!
Nie mogę zmusić skryptu do działania. Problem jest z "?" - zapomniałem jak się to nazywało.
#!/bin/bash
data="
<tag>
<tag1 class=1>data1</tag1>
<tag2 class=2>data2</tag2>
<tag1 class=3>data3</tag1>
</tag>
";
if [[ "$data" =~ \<tag1[^\>]*\>(.*?)\<\/tag1\> ]]
then
echo 0 $BASH_REMATCH
echo 1 ${BASH_REMATCH[1]}
fi
Wynik:
0 <tag1 class=1>data1</tag1> <tag2 class=2>data2</tag2> <tag1 class=3>data3</tag1>
1 data1</tag1> <tag2 class=2>data2</tag2> <tag1 class=3>data3
Znów tutaj jest ok:
https://regex101.com/r/gB3jQ2/1
Jak to zrobić poprawnie w bash'u?