Передача переменной l oop в BASH аргумент find -regex? - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь скопировать изображения, выбранные с помощью выражения REGEX, через find. Команда ниже запускается, но не копирует файлы. Как передать переменную al oop (например, чтение строк файла) в аргумент find -regex?

cat hit_images_regex_list.txt | while read line; 
do 
find . -regex "${line}" -exec cp --parents {} /destination_dir \;
done

Файл hit_images_regex_list.txt, из которого я извлекаю выражения REGEX, выглядит следующим образом:

".*B - 12.*tif"
".*D - 09.*tif"
".*G - 03.*tif"
".*G - 12.*tif"
...

Использование find с каждым из этих выражений REGEX работает, но l oop извлечение выражений REGEX из моего файла .txt ничего не делает.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2020

Попробуйте это.

while IFS= read -r line; do
  find . -regex "$line" -exec cp --parents {} /destination_dir \;
done < hit_images_regex_list.txt
0 голосов
/ 31 марта 2020

Люди нашли время, чтобы попытаться помочь. Прошу нашей вежливости оценить ответы

0 голосов
/ 13 февраля 2020
for i in $(cat hit_images_regex_list.txt); do find -name "$i" | cat -n | while read n f; do cp "$f" /newfolder/path/"$n".tig; done; done

это должно открыть файл и для каждого регулярного выражения (строки) найти все файлы, которые соответствуют и скопировать в новую папку

это помогает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...