вставить текст в имена файлов в Unix - PullRequest
0 голосов
/ 24 октября 2018

У меня есть список строк в String, которые я хочу добавить в начало всех имен файлов Targets в папке.Все файлы заказаны.

String.txt:

ID1Somestring_
IDISomeOtherString_
IDISomeThirdString_

Цели:

example1.fastq
example2.fastq
example3.fastq

вывод:

ID1Somestring_example1.fastq
IDISomeOtherString_example2.fastq
IDISomeThirdString_example3.fastq

1 Ответ

0 голосов
/ 24 октября 2018

Сначала прочитайте файл в массив

mapfile -t strings < String.txt

Затем выполните итерацию по файлам и получите доступ к каждому элементу массива по очереди:

n=0; for file in *fastq; do echo mv "$file" "${strings[n++]}$file"; done
mv example1.fastq ID1Somestring_example1.fastq
mv example2.fastq IDISomeOtherString_example2.fastq
mv example3.fastq IDISomeThirdString_example3.fastq

Илипри условии, что ваши имена файлов не содержат символов новой строки

paste String.txt <(printf "%s\n" *fastq) |
while read -r string file; do echo mv "$file" "$string$file"; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...