LINUX.ORG.RU

Оффтоп. Если эту строку скормить shellcheck.net, то он высказывается о ‘не целевом’ использовании cat. Как обоснование, ссылается на Бесполезное использование cat.

Может кто выскажется, из скриптописателей (bash) с опытом, я то хз. ) Обычно именно cat и использую в подобных случаях.

krasnh ★★★★
()

Если файлы на диске относительно document_root отличаются от урлов относительно корня сайта - то без find не обойтись. Если же не отличаются то и искать не нужно, просто делай в файле урлов замену https://... на <путь к document_root> и получишь абсолютные пути к файлам.

iron ★★★★★
()
Ответ на: комментарий от krasnh

ну он же там предлагает использовать xargs -n1 basename < urls.txt. Обоснование - зачем дергать лишнюю утилиту, когда ее можно не дергать. Еще и по производительности с cat может получиться лишнее копирование и переключение контекста, хотя тут я не проверял.

Хотя на самом деле тут даже xargs не нужен.

$ basename -a $(<urls.txt)
Lrrr ★★★★★
()
Последнее исправление: Lrrr (всего исправлений: 3)

Погоди, а сколько записей в urls.txt? Ты на каждую вызываешь find?
Вызови find один раз, сохрани в файл, а потом катни grep -f по нему, за один проход все найдешь вместо того чтобы несколько суток долбить диск.

slowpony ★★★★★
()
Ответ на: комментарий от vel

Lrrr выше прав - basename достаточно! и скорее всего будет быстрее

time basename «http://io.io/1234567/io.html» io.html

real 0m0,003s
user 0m0,000s
sys 0m0,003s

time echo «http://io.io/1234567/io.html»|sed -e ‘s,^.*/,/,’ /io.html

real 0m0,005s
user 0m0,001s
sys 0m0,005s

и да - у тя у sed команда кавычкой не закрыта

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

Нравицца «cat файл | grep условие» делать, в ком.строке банально проще конец команды редактировать, если делаешь много разных грепов по одному файлу или каталогу

yu-boot ★★★★
()
Ответ на: комментарий от krasnh

Я выскажусь как «скриптописатель с опытом». Бессмысленная и беспощадная борьба с «useless cat» - типичный пример преждевременной оптимизации, где ради мнимого профита в жертву приносится читабельность и модификабельность кода.

wandrien ★★
()
Ответ на: комментарий от wandrien

Хорошо сделаем так сегодня выполню то что мне предлагалось выше и замерю по времени, результаты временного замера сброшу сюда вместе с результатами шапки.

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

ТС уже N-ную тему подряд пытается вкорячить какую-то автоматизацию установки пакетов из изоленты и клея. Если это для какой-то организации работа за деньги, стоит им посочувствовать.

wandrien ★★
()
Ответ на: комментарий от wandrien

да, а если оффлайн машина и необходим пакет содержащий много зависимостей что делать в этом случае устанавливать все вручную или пытаться автоматизировать процесс - поэтому полагаю ирония неуместна!!!

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

Нет, дело в квалификации некоторых отдельных отвечающих, которые вместо дельного и совета несут только флуд и троллят спрашивающих, ибо на большее их не хватает.

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

судя по обрывук про «зависимостей» - похоже кто-то не с того конца начал. и я хз как в там в Минте, а в Демьяне есть пакет apt-offline.

а раньше был apt-zip. это просто как пример как сделать можно. если apt-cache depends почему-то не устраивает

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

Да есть в минте apt-offline только что с него толку я смотрел опции и так и не нашел оп ции установки пакетов онлайн по списку он скорее нужен для оффлайн апдейта.

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

гм. apt-offline я просто привёл как пример и идею кавк всё работает даже когда нет даже прямого доступа

ладно, последняя попытка:

#apt-cache depends xsel
xsel
Зависит: libc6
Зависит: libx11-6

дальше надо объяснять?

и если честно - я совсем не понимаю замысел конструирования своего велосипеда с квадратными колёсами когда есть готовые средства дистрибутива. тем более если есть прямой доступ - что может быть проще чем просто поставить из дистрибутива?

хочется автоматизировать ответы?

вообще, для аналога KickStart тебе сюда:

https://wiki.debian.org/AutomatedInstallation

можно ещё с PXE заморочиться если постоянно и массово надо и сеть своя

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

И при чем тут маска все равно нужна команда поиска путей и записи их в текстовый файл. Lrr и vel предложили самые интересные решения вопроса. Но за попытки решения спасибо всем кто решал.

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

Проверено - все прекрасно только вот непонятно зачем в этом случае в списке удваиваются файлы (не стал приводить конкретные имена файлов просто объясню на цифрах) и непонятно как с этим бороться:

было стало

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

У тебя всего 3 команды. Выполни их отдельно.

сначала find в отдельный файл.

Потом sed в отдельный файл.

Потом grep по одному файлу из другого.

Кстати греп наверно лучше вызывать с ключами -wFf

vel ★★★★★
()