Conda - 获取以某些字母开头的包裹列表

Raj*_*tha 3 python pip anaconda conda

如何获取 conda 中以某些字符开头的包列表?

mer*_*erv 8

Conda 列表命令

conda list命令具有足够的表达能力来执行此操作。具体来说,检查命令的使用签名表明它接受正则表达式参数:

$ conda list -h
usage: conda list [-h] [-n ENVIRONMENT | -p PATH] [--json] [-v] [-q]
                  [--show-channel-urls] [-c] [-f] [--explicit] [--md5] [-e]
                  [-r] [--no-pip]
                  [regex]

List linked packages in a conda environment.

Options:

positional arguments:
  regex                 List only packages matching this regular expression.
...
Run Code Online (Sandbox Code Playgroud)

例子

以下是一些使用正则表达式查找以特定字符串开头的包的示例。

以“sci”开头的软件包

$ conda list '^sci'
# packages in environment at /Users/merv/miniconda3/envs/anaconda_2020_11:
#
# Name                    Version                   Build  Channel
scikit-image              0.17.2           py38h81aa140_0  
scikit-learn              0.23.2           py38h959d312_0  
scipy                     1.5.2            py38h2515648_0  
Run Code Online (Sandbox Code Playgroud)

以“num”或“sci”开头的软件包

$ conda list '^(sci|num)'
# packages in environment at /Users/merv/miniconda3/envs/anaconda_2020_11:
#
# Name                    Version                   Build  Channel
numba                     0.51.2           py38h6440ff4_1  
numexpr                   2.7.1            py38hce01a72_0  
numpy                     1.19.2           py38h456fd55_0  
numpy-base                1.19.2           py38hcfb5961_0  
numpydoc                  1.1.0              pyhd3eb1b0_1  
scikit-image              0.17.2           py38h81aa140_0  
scikit-learn              0.23.2           py38h959d312_0  
scipy                     1.5.2            py38h2515648_0
Run Code Online (Sandbox Code Playgroud)

这应该优于使用,grep因为它将保留conda list输出的标头。