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

Perl позволяет Вам сделать часть своего регулярного выражения нечувствительной к регистру при помощи (? я:) модификатор шаблона.

современные regex разновидности позволяют Вам применять модификаторы только к части регулярного выражения. Если Вы вставляете модификатор (? изм) посреди regex, модификатор только относится к части regex направо от модификатора. Можно выключить режимы путем предшествования им со знаком "минус". Все режимы после знака "минус" будут выключены. Например, (? изм), включает нечувствительность к регистру и выключает и однострочный режим и многострочный режим.

Не все regex разновидности поддерживают это. JavaScript и Python применяют все модификаторы режима ко всему регулярному выражению. Они не поддерживают (?-ismx) синтаксис, начиная с выключения опции бессмыслен, когда модификаторы режима относятся к целым регулярным выражениям. Все опции прочь по умолчанию.

можно быстро протестировать, как regex разновидность Вы используете модификаторы режима дескрипторов. regex (? i) te (?-i), Св. должен соответствовать тесту и Тесту, но не тесту или ТЕСТУ.

Источник

5
задан dot 10 November 2009 в 23:41
поделиться

4 ответа

Вы можете сделать это:

cp `cat list.txt` new-folder/

Обратите внимание, что вам следует избегать использования пробелов в именах файлов при использовании этого (в этом случае потребуется другое решение).

Обратные кавычки выполняются команду cat list.txt и используйте вывод этой команды как часть командной строки для cp . Новые строки в выводе cat заменяются пробелами перед подстановкой командной строки.

9
ответ дан 18 December 2019 в 11:57
поделиться

Если вы хотите сохранить структуру каталогов, используйте один из них (при условии, что GNU tar):

cpio -pvdm /destination <list.txt

tar -cf - -F list.txt | tar -C /destination -x

В обоих случаях конечный результат таков: / destination добавляется к именам файлов. в list.txt.

3
ответ дан 18 December 2019 в 11:57
поделиться

use a loop

while read -r line
do
  cp "$line" /destination
done <"file"
2
ответ дан 18 December 2019 в 11:57
поделиться

цикл:

dest="<destination folder>" #keep the quotes
for i in `cat < list.txt` #loop each line of list.txt
do
cp $i $dest #in each loop copy $i, e/a line of list.txt to $dest
echo "Done."
done

Протестировано. Убедитесь, что "./list.txt" существует, в противном случае введите абсолютный путь вручную. :)

1
ответ дан 18 December 2019 в 11:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: