Я работаю над сценарием оболочки, который берет подстановочный знак от пользователя и ищет совпадающие слова (например, подстановочный знак ar * находит статью и т. Д.) В файлах .txt, которые находятся в текущем рабочем каталоге. Когда он находит слова, он должен преобразовывать их из строчных в прописные (ARTICLE, ARE ...).
Я сгенерировал цикл while для проверки всех слов в файле .txt и цикл for для проверки всех файлов .txt. Цикл while читает файл .txt слово за словом. Однако он находит все слова, которые совпадают с подстановочными знаками;Я не могу преобразовать их в верхний регистр.
....
while IFS= read -r word; do
if [[ ${word,,} == ${string,,} ]]
then
echo $word #to check the words
sed -i "s/${word}/${word^^}" $file
fi
done
Он печатает все слова идеально, но не преобразует их в верхний регистр в файле и выдает ошибку как;
"sed: -e expression #1, char 15: unterminated `s' command"