ответ на команду автоматически - выполнение операции cp между ответами [закрыто]

0
30.07.2018, 16:43
2 ответа

Я не думаю, что вы можете сделать это, запустив program.shтолько один раз, так как он будет продолжать создавать файлы, и вы никогда не сможете быть уверены, что файл будет завершен.

Вместо этого запускайте программу один раз для каждой строки filenames.txt:

while IFS= read -r FILE; do # loop through files in filenames.txt
  echo "$FILE" |./program.sh # run program once and end it with newline
  mv created_filename /some/other/location/${FILE}.ext; # move file
done < filenames.txt
  • Используйте mvвместо cp, так будет быстрее, если вы перейдете на ту же файловую систему.
  • Измените .extна выходной формат (, например..png).
1
28.01.2020, 04:15

Можно сделать так:

(
while IFS= read -r FILE; do
    echo "$FILE"
    sleep 1 # or somehow make a trigger to see when the file is ready...
    mv output_file /somewhere/else
done < filenames.txt;
) |./program.sh

(через)


то же самое с использованием xargs:

(
xargs -a filenames.txt -I{} sh -c 'echo {}; sleep 1; mv file /somewhere/else'
) |./program.sh
-1
28.01.2020, 04:15

Теги

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