Поведение ${VARIABLE/PATTERN/REPLACEMENT}
зависит от того, какую оболочку вы используете, и для bash, какая версия.При ksh или в достаточно недавних (думаю ≥ 4.0) версиях bash ${finalt/'</span></td>'/}
удаляет эту подстроку по желанию.В старых версиях bash цитирование довольно странное;вам нужно написать ${finalt/<\/span><\/td>/}
(который все еще работает в более новых версиях).
Поскольку вы удаляете суффикс, вы можете использовать вместо него конструкцию ${VARIABLE%PATTERN}
или ${VARIABLE%%PATTERN}
.Здесь вы удаляете все после первого </
, то есть самого длинного суффикса, соответствующего шаблону </*
.Точно так же вы можете удалить ведущие теги HTML с помощью ${VARIABLE##PATTERN}
.
trimmed=${finalt%%</*}; trimmed=${trimmed##*>}
Дополнительное преимущество: в отличие от ${…/…/…}
, которое характерно для bash / ksh / zsh и работает немного по-разному во всех трех, ${…#…}
и ${…%…}
полностью переносимы.Они делают не так много, но здесь их достаточно.
Примечание: хотя в данном конкретном случае это не вызывает никаких проблем, вы всегда должны ставить двойные кавычки вокруг подстановок переменных , например
echo "${finalt/'</span></td>'/}"
В противном случае оболочка будет расширять символы подстановки и пробелы в результате.Простое правило заключается в том, что если у вас нет веских оснований опускать двойные кавычки, вы их ставите.