LINUX.ORG.RU

find: Как вывести список найденых файлов с пробелом вместо новой сторки в качестве разделителя?

 ,


0

1


Последнее исправление: bbgg (всего исправлений: 1)
Ответ на: комментарий от ALiEN175

Мне нужно:
Изначально создать список файлов с помощью find и записать его в переменной bash, чтобы не вызывать find помногу раз для каждого приложения.
При этом список нужно разделить по частям, чтобы не всплывало что список аргументов слишком велик.
Потом перевести разделитель новой строкой на разделитель пробелом, но так чтобы файлы с пробелом и кавычками в имени не сломались.
Потом эти списки списков пустить по 100500 прогам.

bbgg
() автор топика
Ответ на: комментарий от bbgg
Ответ на: комментарий от bbgg

а у этих 10500 прог случайно нет опции подставлять вместо 10500 файлов - только один текстовый список файлов? Например, у rsynс есть опция --include-from и у tar тоже есть такой функционал, и у wget.

ALiEN175
()
Последнее исправление: ALiEN175 (всего исправлений: 1)
Ответ на: комментарий от gagarin0

Да скучно. Во-первых, правильный ответ с find -exec {} \; уже назван. Во-вторых, автору бы нормальную документацию, вроде Искусство программирования на языке сценариев командной оболочки прочитать, вместо того, чтобы случайно пытаться применять советы из интернетов, авось подойдёт. В-третьих,

user> (fs/list-dir data-dir)
[#object[sun.nio.fs.UnixPath 0x2ad2be08 "/tmp/tmp.ybEU7QYXdM/file\ttab"]
 #object[sun.nio.fs.UnixPath 0x1f22d5ac "/tmp/tmp.ybEU7QYXdM/file space"]
 #object[sun.nio.fs.UnixPath 0x4c9b7a11 "/tmp/tmp.ybEU7QYXdM/file\nn"]
 #object[sun.nio.fs.UnixPath 0x7501a3f2 "/tmp/tmp.ybEU7QYXdM/file1"]
 #object[sun.nio.fs.UnixPath 0x5e5af730 "/tmp/tmp.ybEU7QYXdM/file'quote"]]
user> 

один вызов стандартной функции и у нас вместо мешанины строк, которую нужно разборчиво интерпретировать — список объектов типа UnixPath. Причём коду, работающему с последовательностями абсолютно всё равно, что там находится. Да и функции, работающие с UnixPath, тоже не напрягаются, если в пути, как в данном случае, содержатся пробелы, табы, переводы строк и т.п. символы.

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

ugoday ★★★★★
()