История изменений
Исправление vodz, (текущая версия) :
Какое-то специфическое решение, такие вещи желательно писать универсально: подсчёт открытых минус закрытых [] и когда сравнялось, то печатать CR. Ну вот например:
# счетчик открытых [
declare -i open
while read -d ']' l; do
# убираем переводы строк
l=${l//$'\n'/}
# подсчет количества [ минус одно закрытие на цикл
o=${l//[^[]/}
open+=${#o}-1
# вывод с переводом строки, если открытые все закрылись
echo -n "$l]"
[[ open -eq 0 ]] && echo
done
Исправление vodz, :
Какое-то специфическое решение, такие вещи желательно писать универсально: подсчёт открытых минус закрытых [] и когда сравнялось, то удалять CR. Ну вот например:
# счетчик открытых [
declare -i open
while read -d ']' l; do
# убираем переводы строк
l=${l//$'\n'/}
# подсчет количества [ минус одно закрытие на цикл
o=${l//[^[]/}
open+=${#o}-1
# вывод с переводом строки, если открытые все закрылись
echo -n "$l]"
[[ open -eq 0 ]] && echo
done
Исходная версия vodz, :
Какое-то специфическое решение, такие вещи желательно писать универсально: подсчёт отырытх минус закрытых [] и когда сравнялось, то удалять CR. Ну вот например:
# счетчик открытых [
declare -i open
while read -d ']' l; do
# убираем переводы строк
l=${l//$'\n'/}
# подсчет количества [ минус одно закрытие на цикл
o=${l//[^[]/}
open+=${#o}-1
# вывод с переводом строки, если открытые все закрылись
echo -n "$l]"
[[ open -eq 0 ]] && echo
done