Вы можете использовать rsync
для их перемещения, предполагая, что ваш список файлов состоит из одного имени файла в строке.
rsync -av --remove-source-files --files-from filelist.txt sourceDir/ targetDir/
Если ваши файлы имеют абсолютные имена (, то есть имена начинаются с /
), sourceDir
должно быть /
. В противном случае это должен быть корень относительных имен.
Пример
$ mkdir src dst
touch src/{one,two,three}
$ cat >filelist.txt <<EOF
one
two
EOF
$ ls src
one three two
$ ls dst
$ rsync -av --files-from filelist.txt --remove-source-files src/ dst/
building file list... done
one
two
sent 165 bytes received 70 bytes 470.00 bytes/sec
total size is 0 speedup is 0.00
$ ls src
three
$ ls dst
one two
Данные вашего примера выглядят как сломанный фрагмент json, поэтому вам действительно следует использовать jq
для извлечения из него того, что вам нужно перед тем, как делать то, что вы сделали с исходным вводом, который вызвал его выглядеть так.
Однако, чтобы извлечь URL-адреса, начинающиеся с https://www
и не содержащие символ двойной кавычки -, из того, что у вас есть, вы можете использоватьgrep
:
$ grep -o 'https://www[^"]*' input.txt
https://www.mycompany.com/posts/aureliaflore_china-seoul-startup-activity-6571925510337728512-acAw
https://www.mycompany.com/posts/aureliaflore_reuters-top-news-on-twitter-activity-6571392661482233856-T3dO
https://www.mycompany.com/posts/aureliaflore_are-you-thinking-to-the-benefits-of-digitalization-activity-6570119712154451968-927T