Создание сценария bash для замены строки в нескольких файлах с предоставленным расширением - PullRequest
0 голосов
/ 19 марта 2019

Я знаю, что об этом спрашивали много раз, но по какой-то причине мой сценарий не работает.Это будет работать, когда я предоставлю имя файла,

3)
    echo "provide a string to find"
    read stringA
    echo "provide a string to write"
    read stringB
    echo
sed -i -e 's/'"$stringA"'/'"$stringB"'/g' ~/Desktop/skrypcik/*.$ext
;;
esac 

, $ ext предоставляется ранее как расширение.когда я поменяю * с именем файла и оставлю там $ ext - он будет работать.

например, у меня есть 2 .txt файла с именем aaa.txt & bbb.txt, они останутся нетронутыми при запуске этого скрипта, но когда я изменю путь на ~ / Desktop / skrypcik / aaa.$ ext, установите $ ext в качестве txt, он будет работать и правильно изменять aaa.txt.

извините за путаницу, я только изучаю bash, и я видел, что "sed" используется с просто "sed -i 's / foo / bar / g' *", который работает очень хорошо.что не так с моим?

Спасибо

edit: ладно, видимо мне не хватало разрешений на этот файл, после замены на нужные он работает правильно.

после настройки теперь все хорошо, спасибо.

3)
echo "provide a string to find"
read stringA
echo "provide a string to replace"
read stringB
echo
sed -i '.backup' 's/'"$stringA"'/'"$stringB"'/g' ./*.$ext
echo "backups were created"
        for x in ./*.$ext.backup; do
        echo $x
done
;;
esac
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...