У меня есть папка с большим количеством изображений.
Мой клиент отправил мне список отклоненных изображений, которые мне нужно удалить из этой папки.
Список выглядит так: _001,_002,_003,_004,_006,_007,RAM08953,RAM08995,RAM08996,RAM09039,RAM09060,RAM09087,RAM09101,RAM09104,RAM09115,RAM09126,RAM09170,RAM09171,RAM09172,RAM09176,RAM09188
.
Как я могу легко запустить что-то, что удаляет эти файлы, или переместить эти файлы в новую папку или что-то, не делая вручную? Это может быть приложение, сценарий оболочки или любой совет.
cat
and|
asawk
будет считывать файл в качестве аргумента , то"$(awk '{gsub(/,/, "\n")}1' foo.csv)"
есть все, что требуется.awk
но один раз в голубой луне, и он течет с моим стилем кодирования. В этом нет ничего «ненужного».awk
это часто, и, хотя мояawk
команда более компактна, тем не менее, это не главное. Я только указываю на то, что обычно считается очень плохой парадигмой программирования. FWIW Я тоже использую, чтобы кодировать таким же плохим способом, но научился делать это лучше благодаря комментариям, подобным этим.Чтобы удалить список разделенных запятыми имен файлов из папки, вы можете использовать следующее:
Замените
file.jpg,second.jpg,…
список файлов, разделенных запятыми.Замените
/path/to/folder
путь к папке с изображениями.tr , '\n'
заменяет запятые на входе новыми строками.xargs
берет строки и запускает заданную команду для каждой строки, заменяя их{}
вводом каждой строки (как указано в инструкции-I{}
).tr
используется, посколькуxargs
в macOS не поддерживается-d
пользовательский разделитель.Тем не менее, я заметил, что ваш список не включает расширения файлов. Вместо этого вы можете добавить расширение в конец команды.
источник