ファイル内の特定のテキストを検索し、指定されたパスからそれを置き換え、テキストを置き換えた後、そのファイルの名前を特定の単語に変更するシェルスクリプトを1つ書いています。sed の使用中に許可が拒否されたというエラーが表示されます。私のスクリプトは次のようになります
`echo "Please Insert the path of the folder"
read input_variable
read -p "You entered: $input_variable is correct y/n " yn
read -p "Enter the word to find = " word
read -p "Enter word to replace = " replace
case $yn in
[Yy]* ) find "${input_variable}" -type f -iname "${word}.*" | while read filename; do "`echo "${filename}" | sed -i 's/$word/$replace/g' ${filename}| sed -i 's/\$word/\$replace/' ${filename}`"; done ;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac`
以下のエラーが表示されます
bulk_rename.sh: 34: bulk_rename.sh: : 権限が拒否されました
助言がありますか ?
@vijayによる提案がスクリプトを更新した後
echo "Please Insert the path of the folder"
read input_variable
read -p "You entered: $input_variable is correct y/n " yn
read -p "Enter the word to find = " word
read -p "Enter word to replace = " replace
case $yn in
[Yy]* ) find "${input_variable}" -type f -iname "${word}.*" | while read filename; do
perl -pi -e 's/$word/$replace' ${filename}
mv ${filename} $word; done;;
[Nn]* ) exit;;
* ) echo "Please answer yes or no.";;
esac
今、私は次のようになっています
-e 行 1 で置換置換が終了していません
これは、chmodして出力を表示すると得られるものです
abc@PC-DEV-41717:~/Documents/blog$ chmod +x bulk_rename.sh ; /bin/ls -l bulk_rename.sh
chmod +x bulk_rename.sh ; /bin/ls -l bulk_rename.sh
+ chmod +x bulk_rename.sh
+ /bin/ls -l bulk_rename.sh
-rwxrwxr-x 1 abc abc 1273 Aug 1 16:51 bulk_rename.sh