Заархивируйте и заархивируйте в другой каталог.

Вы можете использовать herestring <<<для передачи строки в grep:

newnum=$(grep -oE '[0-9]+' <<< "$key" | sort -rn | head -n 1)

Это будет более эффективно, чем echo "$key" | grep, создающее дополнительный процесс.

Не забудьте заключить ваши переменные в двойные кавычки, чтобы предотвратить разбиение слов и подстановку. См. также это .

1
16.09.2019, 10:27
1 ответ

Вам нужно сделать это двумя командами, так как --remove-filesбудет игнорировать --exclude.

tar -czvf../All_Files.tar.gz --exclude 'Merge_*' *.csv && \
find. -type f -name '*.csv' -not -name 'Merge_*' -delete

Сообщение "tar: Removing leading '/' from member names"НЕ является ошибкой, но tar работает как положено.

Обратите внимание, что --excludeпринимает шаблон (, например. 'Merge_*'), а не список, разделенный запятыми -. Вам нужно поставить его перед файлами, которые вы хотите исключить из архива, иначе файлыMerge_-окажутся в вашем архиве.

0
28.01.2020, 00:00

Теги

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