请教 v 友们 brew search/info 能否支持模糊查找? 谢谢

2022-01-13 20:50:39 +08:00
 notgoda

我试了 软件名* 显示没有匹配 , 是我姿势不对?

另外请教想安装 telent, 下面这个提示,是需要先安装 xcode?
% brew info telnet telnet: stable 63 (bottled) User interface to the TELNET protocol https://opensource.apple.com/ Conflicts with: inetutils (because both install 'telnet' binaries) Not installed From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/telnet.rb License: BSD-4-Clause-UC and APSL-1.0 ==> Requirements Build: Xcode ✘ Required: macOS ✔

1417 次点击
所在节点    macOS
10 条回复
also24
2022-01-13 20:54:51 +08:00
根据官方文档,是支持正则的

https://docs.brew.sh/Manpage#search--s-options-textregex-
notgoda
2022-01-13 22:26:17 +08:00
@also24 对呀,但是我 搜索关键词 比如 brew search visual* 显示不匹配。
also24
2022-01-13 22:38:58 +08:00
@notgoda #2
首先,我感觉你的需求可能是直接 brew search visual 就行的



然后,直觉上你是不是把通配符和正则搞混了?实际想要查的是 brew search /^visual.*/ 吧?
不过,似乎 zsh 对 * 的解析存在一些问题,建议在 bash 下执行这段

also24
2022-01-13 22:39:48 +08:00
另,没有去仔细看 brew 是怎么实现的,似乎对 - 符号有特殊处理,导致搜索结果有点奇怪
also24
2022-01-13 22:41:38 +08:00
关于 * 的问题的补充,可以通过 setopt no_nomatch 关闭 zsh 对通配符的优先解析,就可以正常执行了
notgoda
2022-01-13 23:45:41 +08:00
@also24 谢谢大佬。 请问 brew info 怎么看软件有没有原生支持 ARM ? 现在好像 brew 包里面没有标识出来。
also24
2022-01-14 00:26:27 +08:00
@notgoda #6
可以在网页上查询:
https://formulae.brew.sh/formula/htop

也可以使用类似 brew info htop -j | grep arm 的方式查看。

另外也可以使用 brew unbottled htop 来曲线救国。
有已打包好的 bottle 的话会显示为 htop: already bottled
没有的话,会类似于:luajit: ready to bottle


对于 cask 来说,是否支持 ARM 不归 homebrew 管。
notgoda
2022-01-14 16:02:37 +08:00
@also24 谢谢大佬。 如果 l 显示有已打包好的 bottle 的就肯定是支持 arm /Intel 系统架构的吗? 另外比如像下面这个软件如何判断他是否支持 Arm?https://github.com/paradiseduo/tcping
wengych
2022-01-14 17:15:12 +08:00
@also24 这类问题在 zsh 下很多都可以通过加双引号来解决,比如

```
brew search "/^visual.*/"
```
notgoda
2022-01-18 22:01:12 +08:00
@also24
@wengych 两位 v 友 请教如何在 zsh 下把 mac 自带的 BSD 命令替换成 gnu 命令? 这是我的步骤 一直不成功, 两位能帮忙看下哪里错了吗? 万分感谢

我是 zsh 下执行以下脚本 , 用 bash xxx.sh
#!/usr/bin/env bash
print_usage() {
cat <<- EOF
use gnu tools without prefix "g" on mac, for example, "cat" rather than "gcat"
EOF
exit 0
}
if [[ $1 =~ -h|--help ]]; then
print_usage
fi
gnu_bin_path=/usr/local/gnubin
if [[ ! -d $gnu_bin_path ]]; then
mkdir $gnu_bin_path
fi
for i in /usr/local/opt/*/libexec/gnubin/*
do
ln -s $i $gnu_bin_path
done
echo "finish"


然后增加 PATH=/usr/local/gnubin/:$PATH
export PATH

到.zprofile


添加这段脚本在~/.zprofile 中:

join_str() {
sep="$1"
shift
first_word="$1"
shift
printf "%s" "$first_word" "${@/#/$sep}"
}

manpath=(/usr/local/opt/**/libexec/gnuman/)
joined_manpath=`join_str : ${manpath[@]}`
MANPATH=$joined_manpath:$MANPATH
export MANPATH
unset manpath
unset joined_manpath

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/828114

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX