В bash я делаю это:
reindent() {
source <(echo "Zibri () {";cat "$1"; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3 | sed -e "s/^\s\s\s\s//"
}
это исключает комментарии и переопределяет скрипт "bash way".
Если у вас есть HEREDOCS в вашем скрипте, они будут разрушены sedв предыдущей функции.
Так что используйте:
reindent() {
source <(echo "Zibri () {";cat "$1"; echo "}")
declare -f Zibri|head --lines=-1|tail --lines=+3"
}
Но все ваши скрипты будут иметь отступ в 4 пробела.