Установка нескольких формул homebrew одновременно
вы можете установить несколько формул homebrew по brew install package1 package2
. Но если у вас есть текстовый файл со всеми пакетами, которые вы хотели бы установить. Как бы вы это сделали?
brew install < packages.txt
не работает. Это дает мне ответ: This command requires a formula argument
2 ответов
здесь альтернативный подход, который обходит необходимость создания файла в качестве промежуточного шага:
синтаксис:
brew install $( brew search my-search-term | grep my-filter-term | tr '\n' ' ' )
и
brew search x | grep y > install_list.txt
brew install $( < install_list.txt )
альтернатива (с помощью awk):
brew search x | awk '/inclusion string/ && !/exclusion string/' | tr '\n' ' ' )
пример:
предположим, я хотел установить все шрифты ботана, которые в настоящее время не находятся на моей машине за один раз.
brew cask search fonts
приведу несколько строк в результаты-аналогично выходу по умолчанию из ls
:
brpro ➜ ~ brew cask search font
==> Partial Matches
birdfont font-hack-nerd-font
dfontsplitter font-hack-nerd-font-mono
font-3270 font-halant font-noto-sans-tibetan
font-3270-nerd-font ✔ font-hammersmith-one
font-3270-nerd-font-mono ✔ font-han-nom-a
font-abeezee font-hanalei font-noto-sans-vai
(...)
трубопровод вывода на grep -i nerd
дает один разделенный строкой список только краны мы хотим.
brpro ➜ ~ brew cask search font | grep -i nerd
font-3270-nerd-font
font-3270-nerd-font-mono
font-anonymouspro-nerd-font
font-anonymouspro-nerd-font-mono
font-arimo-nerd-font
font-arimo-nerd-font-mono
font-aurulentsansmono-nerd-font
(...)
можно использовать tr
чтобы преобразовать этот вывод в одну строку, разделенную пробелами:
brpro ➜ ~ brew cask search font | grep nerd | tr '\n' ' '
font-3270-nerd-font font-3270-nerd-font-mono font-anonymouspro-nerd-font font-anonymouspro-nerd-font-mono (...)
теперь нам просто нужно передать результат в brew install
:
brew install $( brew cask search font | grep nerd | tr '\n' ' ' )
Дудки! Композиция! Радость!
La voie Unix!