Простой пример изменения префикса и расширения всех изображений в текущей папке.
prefix=EG_
extension=.jpg
for i in $(ls); do mv $i "$prefix${i%.JPG}$extension"; done
Если вы хотите проверить, как это повлияет на ваши данные перед их изменением, замените mv на echo
, вывод для IMG_7993.JPG - EG_IMG_7993.jpg
{{1} } Если вы хотите использовать один из упомянутых вами инструментов, вы можете сделать это с помощью sed
:
echo "/Folder/F1/F2/F3/F4/.../Fn/abc.txt" | sed "s/\/[^/]*$//"
sed -i "s/\/[^/]*$//" path.txt
Если вы используете bash, вы можете использовать для этого расширение параметров Bash:
path=$(cat path.txt)
echo "${path%/*}"
И, как упоминалось в ikkachu , вы можете использовать ] dirname
.
basename
и dirname
печатают последнюю и предпоследнюю части имени файла, указанного в качестве аргумента, поэтому:
$ dirname "/Folder/F1/F2/F3/F4/.../Fn/abc.txt"
/Folder/F1/F2/F3/F4/.../Fn
(или из файла: dirname "$ (