Скрипт - перемещать файлы, которые совпадают с записями в текстовом файле на основе параметров

Он был удален из тестирования еще в 2014 году - https://www.reddit.com/r/lisp/comments/2ery81/clisp_removed_from_debian_testing/

Похоже, он сейчас находится в sid - https://packages.debian.org/unstable/lisp/

0
25.11.2018, 16:13
2 ответа

Попробуйте этот. Измените команду «echo» на cp или mv после тестирования:

for f in samples.txt ; do 
  echo /source/path/*$(cut -d '|' -f 5,2 $f | tr '|'a-z '_'A-Z)*.pdf /destination/path
done

Прости, мой плохой. Спасибо @Kusalananda. Пожалуйста, считайте приведенный выше ответ неправильным и попробуйте этот. Предположим, вы фильтруете по 5 -и 4 -столбцам, он копирует файлы из /src в /dst :

.
awk -F "|" '{system("cp /src/*"toupper($5)"_"$4"*.pdf /dst")}' samples.txt
0
28.01.2020, 04:20

Я бы подошел к этому с другой стороны:

  • прочитать и разбить текстовый файл на поля строки -по -строки
  • найти и переместить соответствующие файлы

Э.Г. (предполагает bashи GNUmv):

#!/bin/bash

shopt -s nullglob

while IFS='|' read -r loc a b c last first d e; do 
  echo mv --no-clobber -t path/to/target/ -- *_"$a"_"${last^^}"_*_*_*_*.pdf
done < file.txt

Удалите echo, как только вы убедитесь, что он делает то, что вам нужно

0
28.01.2020, 04:20

Теги

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