У меня есть имена файлов, из которых я пытаюсь извлечь имена / слова / цифры для дальнейшего использования.
например,
/.../Penguins_45_MIA.txt
/.../Sheep_3.5_KIA.txt
/.../Dolphins_19_AWOL.txt
Как видите, в именах файлов есть разделенные подчеркиванием компоненты, которые мне полезны.Я помещаю их в массив ("currentpath
"), а затем в цикл, обрабатывая каждый файл по одному (я думаю, что это довольно разумный подход?).Я пытался использовать следующую команду, чтобы разбить путь на составляющие слова и цифры:
partialpath=(${currentpath//_/})
, а затем выбрал часть имени (теперь элемент), например, животное, используя что-то вродеэто:
${partialpath[-3]}
Но это не работает - я надеялся, что эхо из вышеперечисленного даст мне Dolphins
или Penguins
и т. д. Когда я исследовал, echo "${partialpath[@]}"
вернул:
/.../Dolphins19AWOL.txt
Итак, я предполагаю, что массив имеет только один элемент?Это значит, что весь путь к файлу склеен без каких-либо подчеркиваний?Или я неправильно выбираю элементы?
Кроме того, я только что заметил, что этот последний элемент по-прежнему оставляет файл .txt
, заканчивающийся на последнем элементе, что будет неоптимальным.
Надеюсьэто понятно, я знаю, что это простая проблема, но я совершенно новичок в написании сценариев и целый день чесал голову.