У меня есть файлы, имена которых имеют формат ddmmyyyyTEXT.txt
Я хочу переименовать все файлы в yyyy-mm-dd-TEXT.txt
Здесь ТЕКСТ — это некоторый произвольный текст.
Какое выражение sed мне следует использовать?
решение1
FILE="23022014hello world.txt"
mv "$FILE" "$(echo "$FILE" | sed 's/\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{4\}\)\(.*\)/\3-\2-\1-\4/')"
Он вырезает первые 2 цифры, вторые 2 цифры, следующие 4 цифры и оставшиеся символы по отдельности и располагает их в соответствии с вашими требованиями.