Это может вам подойти:
Начните с вашего примера набора файлов:
$ find. -type f -name '*-gcc-*'
./intel-mkl/2018.1.163-gcc-7.1.0
./superlu-dist/5.2.2-gcc-7.2.0-openmpi@3.0.0
./exuberant-ctags/5.8-gcc-7.1.0
Вот скрипт для обрезки -gcc -*конца любого имени файла:
$ cat ex.sh
#!/bin/bash
for i in $(find. -type f -name '*-gcc-*'); do
mv "$i" "$(echo "$i" | sed -e 's/-gcc-.*$//')"
done
Запустить скрипт:
$ bash ex.sh
Обратите внимание, что файлы больше не содержат суффикс -gcc -*:
$ find. -type f
./intel-mkl/2018.1.163
./superlu-dist/5.2.2
./exuberant-ctags/5.8
@steeldriver выяснил это в комментариях к основному вопросу. Проблема была вызвана пробелами в именах файлов, и изменение команды на grep -l -r -Z '.mp4' * | xargs -0 cp -t./Test --
отсортировало ее!