С bash
:
for f in XYZ*/*; do mv -v "$f" "${f%/*}/${f:0:5}${f##*/}"; done
Цикл for
проходит через все XYZ *
каталоги. Затем команда mv
переименовывает файлы.
Где:
$ f
- это исходное имя файла $ {f% / *}
- это имя каталога $ {f: 0: 5}
- это префикс $ {f ## * /}
- это исходное имя файла Чтобы переместить все строки, начинающиеся с гласной -не гласной -гласной -не гласной, в начало файла:
{ grep -i '[aeiouy][^aeiouy][aeiouy][^aeiouy]' input; grep -iv '[aeiouy][^aeiouy][aeiouy][^aeiouy]' input; } >outfile
Если «не гласный» недостаточно хорошо, замените [^aeiouy]
своим списком согласных:[bcdf...]
.
Рассмотрим этот входной файл:
$ cat >input
asasxx
bsbsxx
esesxx
wswsxx
Запускаем нашу команду:
$ { grep -i '[aeiouy][^aeiouy][aeiouy][^aeiouy]' input; grep -iv '[aeiouy][^aeiouy][aeiouy][^aeiouy]' input; } >outfile
Это выходной файл:
$ cat outfile
asasxx
esesxx
bsbsxx
wswsxx