Esc n дд. n — количество строк для удаления, включая текущую строку. Нажмите кнопку «Esc», затем «n», а затем «dd». Для лучшего понимания
Если у вас нет доступного rename
, вы можете попробовать следующий цикл (Bash ), который используетsed
:
user@host$ for FILE in *.txt; do NEWNAME=$(sed 's/_20190629/_20191129/' <<< "$FILE"); mv "$FILE" "$NEWNAME"; done
Обратите внимание, что для этого требуется Bash. Если у вас другая оболочка, вам придется прибегнуть к чему-то вроде
user@host$ for FILE in *.txt; do NEWNAME=$(echo "$FILE" | sed 's/_20190629/_20191129/'); mv "$FILE" "$NEWNAME"; done
Также обратите внимание, что это предполагает, что имена файлов «достаточно хорошо -ведут себя», поэтому специальные символы (, не являющиеся частью вашего примера ), могут привести к сбою.
С переименованием Ларри Уолла(rename
(Debian, Ubuntu )илиprename
(RHEL/CentOS)):
rename -n s/_20190629/_20191129/ neif11_fastcredit_20190629*.txt
-n
— это всего лишь переключатель «пробного прогона». Удалите или замените на -v
для фактического использования.
Использование mv
и петли:
for f in neif11_fastcredit_20190629*.txt; do
mv "$f" "neif11_fastcredit_201911${f##*_201906}"
done
Часть ${f##*_201906}
удаляет самый длинный соответствующий префикс neif11_fastcredit_201906
из каждого имени файла и оставляет часть DDHHMMSS.txt
в качестве суффикса нового имени файла.