Ваше предположение верно.Конструкция [...]
ищет любые символы в этом наборе, поэтому вы должны предварять («экранировать») их с помощью \
.Самый простой способ - это сделать это в исходном файле:
sed -i -e 's:\[:\\[:' -e 's:\]:\\]:' "${myFile}"
Если вам это не нравится, вы, вероятно, можете поместить команду sed
туда, куда вы направляете файл:
done < replace.txt|sed -e 's:\[:\\[:' -e 's:\]:\\]:'
Наконец, вы можете использовать sed для каждой HKline
переменной:
HKline=$( echo $HKline | sed -e 's:\[:\\[:' -e 's:\]:\\]:' )