Исключить файлы из команды cat на основе имени папки - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу объединить несколько файлов в целую кучу подпапок.Список файлов всегда один и тот же, но в каждой подпапке должна быть конкатенирована отдельная комбинация, выбор которой должен основываться на имени подпапки.Имена папок содержат перестановки Cr Hf Mo Nb Ta Ti V W и Zr.Так, например, одна папка называется CrHfMoNbN, следующая CrHfMoTaN и так далее.Файлы для объединения также содержат эти символы, они называются file_Cr, file_Hf, file_Mo, file_Nb, file_Ta, file_Ti, file_V, file_W и file_Zr.

В конце концов, то, что мне нужно, должно выглядеть так:

cat file_Cr file_Hf file_Mo file_Nb file_Ta file_Ti file_V file_W file_Zr > newfile

, но пропустить 5 из этих файлов в зависимости от того, присутствует ли их символ в имени подпапки.или нет.Например, в папке CrHfMoNbN код должен работать следующим образом:

cat file_Cr file_Hf file_Mo file_Nb {file_Ta file_Ti file_V file_W file_Zr} > newfile

, где файлы в {} исключены из команды, в папке HfTiVZrN itдолжно работать следующим образом:

cat {file_Cr} file_Hf {file_Mo file_Nb file_Ta} file_Ti file_V {file_W} file_Zr > newfile

Исключение должно работать так, чтобы сохранялся алфавитный порядок, то есть file_Hf всегда следует после file_Cr, но до file_Mo.В идеале команда должна быть запущена из родительского каталога для всех вложенных подкаталогов.Я знаю, что первым шагом было бы определить эти буквы как переменные, но в дальнейшем я не знаю, что делать.

...