LINUX.ORG.RU

История изменений

Исправление gagarin0, (текущая версия) :

@vas199228, попробуйте для начала вот такую конструкцию

ВАЖНО тестируйте в изолированной песочнице!

cat ${ARCHI_LIST} | xargs -P$(nproc) -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { print \"%\"; exit }"' | tee ${RM_LIST} 

Единственный момент, что «множество» запущенных параллельно процессов могут написать в stdout одновременно и получится «кашица», для этого нужно немного переделать скрипт:

cat ${ARCHI_LIST} | xargs -P$(nproc) -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { exit 1 }" || echo % > %.rm' && find . -type f -iname "*.rm" -exec sh -c 'cat {}; rm {}' \; | tee ${RM_LIST}

@ugoday как это будет на барабашке?

Исправление gagarin0, :

@vas199228, попробуйте для начала вот такую конструкцию

ВАЖНО тестируйте в изолированной песочнице!

cat ${ARCHI_LIST} | xargs -P$(nproc) -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { print \"%\"; exit }"' | tee ${RM_LIST} 

Единственный момент, что «множество» запущенных параллельно процессов могут написать в stdout одновременно и получится «кашица», для этого нужно немного переделать скрипт:

cat arch_list | xargs -P20 -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { exit 1 }" || echo % > %.rm' && find . -type f -iname "*.rm" -exec sh -c 'cat {}; rm {}' \; | tee ${RM_LIST}

@ugoday как это будет на барабашке?

Исправление gagarin0, :

@vas199228, попробуйте для начала вот такую конструкцию

cat ${ARCHI_LIST} | xargs -P$(nproc) -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { print \"%\"; exit }"' | tee ${RM_LIST} 

@ugoday как это будет на барабашке?

Исправление gagarin0, :

@vas199228, попробуйте для начала вот такую конструкцию

cat ${ARCHI_LIST} | xargs -P$(nproc) -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { print \"%\"; exit }"'

@ugoday как это будет на барабашке?

Исправление gagarin0, :

@vas199228, попробуйте для начала вот такую конструкцию

cat ${ARCHI_LIST} | xargs -P$(nproc) - 1 -I% sh -c 'tar --list --file=% --wildcards "*.fits" | awk "(NR == 2) { print \"%\"; exit }"'

@ugoday как это будет на барабашке?

Исходная версия gagarin0, :

@vas199228, попробуйте для начала вот такую конструкцию

cat ${ARCHI_LIST} | xargs -P$(nproc) - 1 -I% sh -c ‘tar –list –file=% –wildcards «*.fits» | awk «(NR == 2) { print "%"; exit }»’

@ugoday как это будет на барабашке?