您可以安装多个自制公式 brew install package1 package2
。但是,如果您有一个包含您要安装的所有软件包的文本文件。你会怎么做?
brew install < packages.txt
不起作用。它给了我答复: This command requires a formula argument
您可以安装多个自制公式 brew install package1 package2
。但是,如果您有一个包含您要安装的所有软件包的文本文件。你会怎么做?
brew install < packages.txt
不起作用。它给了我答复: This command requires a formula argument
喜欢这个:
brew install $(cat packages.txt)
甚至只是
brew install $(<packages.txt)
这是一个 替代的单线方法,它绕过了创建文件作为中间步骤的需要:
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!