Я создаю сценарий оболочки bash, который переименует расширение файла без необходимости указывать старое имя расширения файла.Если я введу «change foo *» для терминала в Linux, он изменит все расширение файла на foo.
Итак, допустим, у меня есть четыре файла: «file1.txt», «file2.txt.txt "," file3.txt.txt.txt "и" file4. "
Когда я запускаю команду, файлы должны выглядеть так:" file1.foo "," file2.txt.foo ","file3.txt.txt.foo" и "file4.foo"
Может кто-нибудь взглянуть на мой код и исправить его.Я также был бы признателен, если бы кто-нибудь смог реализовать это для меня.
#!/bin/bash
shift
ext=$1
for file in "$@"
do
cut=`echo $FILE |sed -n '/^[a-Z0-9]*\./p'`
if test "${cut}X" == 'X'; then
new="$file.$ext"
else
new=`echo $file | sed "s/\(.*\)\..*/\1.$ext/"`
fi
mv $file $new
done
exit