генерировать имена файлов в цикле

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я использую Mac OSX. Сценарий bash находится в другом каталоге из файлов, требующих обработки. Отсюда начинается моя борьба …

ПОМОЩЬ 1 : У меня есть несколько файлов, каждый из которых размещен в подкаталоге родительского каталога, который должен быть подан в качестве входных файлов для моего инструмента биоинформатики. Я обнаружил, что цикл for будет работать для этого.

for file in ~/Desktop/parent\ folder/*/*.txt; do exTool INPUT= ${file##*/} OUTPUT= ${file%.txt}_exd.txt 

Я надеюсь ввести файл (вырезая список папок, прикрепленный к файлу $ file), а затем вывести файл, удалив «.txt» и добавив _exd.txt. Ошибка, которую я получаю, заключается в том, что на входе указан список папок, и в частности, «родительская папка» whitespace вызывает неправильную информацию ввода.

HELP 2 : Как расширение первого случая, если я хочу вывести файл в тот же подкаталог, что и вход, нужно ли добавить специальную команду?

ПОМОЩЬ 3 : Если у меня есть 2 файла в каждом подкаталоге (input_1.txt и input_2.txt), и я хотел бы ввести оба в одну команду. Как выглядит сценарий, если он вложен в цикл for?

 for file in ~/Desktop/parent\ folder/*/*.txt; do bioTool INPUT1= ${file%.txt}_1.txt INPUT2= ${file%.txt}_2.txt OUTPUT= ${file%%.*} 

Для вывода обратите внимание, что мне нужно только базовое имя файла, так как инструмент добавит число в конце имени для обозначения выхода 1-го и 2-го файлов и расширения. По какой-то причине я чувствую, что секция после «in» в цикле for выполняется неправильно. Это было решение для коленного судорог для того, чтобы иметь скрипт в каталоге, отличном от файлов.

Любая помощь будет принята с благодарностью, поддержана, понравится, принята, одобрена. Большое спасибо за Вашу помощь.

One Solution collect form web for “генерировать имена файлов в цикле”

ПОМОЩЬ 1

Из-за пробела вам нужно указать:

 INPUT= "${file##*/}" OUTPUT= "${file%.txt}"_exd.txt 

Кажется немного странным, однако, что между INPUT= и именем файла есть пробел.

ПОМОЩЬ 3

Если у вас есть файл input_1.txt то ${file%.txt}_1.txt становится input_1_1.txt .

Я хотел бы указать точное имя файла:

 for file in ~/Desktop/parent\ folder/*/input_1.txt; do bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}" done 

ПОМОЩЬ 4

Это вообще не оболочка.

изменение в подкаталоги

 for file in ~/Desktop/parent\ folder/*/input_1.txt; do subdir="${file%/*}" pushd "$subdir" &>/dev/null file="${file##*/}" bioTool INPUT1= "${file}" INPUT2= "${file%_1.txt}_2.txt" OUTPUT= "${file%%.*}" popd &>/dev/null done 
  • set -A команда не запущена в Linux
  • Разница между systemd и программой запуска терминала
  • Копирование файлов на основе списка ввода, специальных символов в именах файлов
  • Уникальные линии, основанные на первом поле
  • Как запустить java-службу как пользователя без полномочий root на CentOs 6
  • Команда sftp с именем «\» в имени пользователя не работает
  • Эффективно копировать имена в оболочке
  • Отложить переменное расширение до подоболочки
  • Когда требуется двойное цитирование?
  • Передача набора параметров программе с использованием переменной Bash
  • Удаление черной полосы в sed
  • Interesting Posts

    Как зашифровать ключ для использования с системой хранения ключей Linux?

    Запуск команды в новом окне терминала через Python

    Как я могу вычислить среднее значение для нескольких столбцов с тем же значением для первых двух столбцов?

    Как отправить всю информацию в файл / var / adm / message в удаленную систему?

    Как отображать сообщения printk, отфильтрованные по уровню по мере их поступления?

    Почему в некоторых дистрибутивах Linux службы systemd включены по умолчанию, а в других нет?

    Почему Tomcat не появляется, когда я выводил grep netstat на 8080?

    Требуется помощь при настройке сопоставления клавиатуры ядра

    Модуль Numpy не найден, несмотря на то, что он находится в пути

    Как заставить человека (1) использовать всю ширину терминала?

    Почему xinit делает мой физический дисплей пустым?

    Являются ли основные, второстепенные номера уникальными

    BTRFS – Рейд неполный после балансировки

    Список всех файлов, содержащих определенную строку.

    Как установить Gnome Schedule в Cent Os 7

    Linux и Unix - лучшая ОС в мире.