Просто используя сценарии оболочки, как я могу вставить текст в середину имени файла. Файл имеет предсказуемый шаблон, скажем, 3 буквы и 3 цифры, и я хочу вставить текст в середине этих 2 шаблонов. Скажем, ABC123 это имя файла. В результате имя файла должно быть ABC.blah.123

2 ответа2

1

Вы можете использовать sed для изменения строки имени файла:

echo $filename | sed -r 's/^([a-zA-Z]{3})([0-9]{3})$/\1.blah.\2/'

Это означает: возьмите первые 3 символа строки, если они являются буквами, добавьте строку `.blah. ' и добавьте последние 3 символа строки, если они являются числами.

Например, если вы хотите переименовать файл, вы можете сделать:

mv "$filename" "`echo $filename | sed -r 's/(^[a-zA-Z]{3})([0-9]{3})$/\1.blah.\2/'`"
1

Предполагая, что у вас достаточно недавний bash , вы можете использовать подстроки параметров:

file=ABC123
text=blah
new_file="${file:0:3}.$text.${file:3}"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .