whlファイルのパッケージ名を取得しようとしています。
これらのファイルは
ls /python/*.whl
/python/argparse-1.4.0-py2.py3-none-any.whl /python/Jinja2-2.11.2-py2.py3-none-any.whl
/python/certifi-2019.9.11-py2.py3-none-any.whl /python/kazoo-2.2.1-py2.py3-none-any.whl
/python/cffi-1.14.0-cp27-cp27mu-manylinux1_x86_64.whl /python/MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl
/python/chardet-3.0.4-py2.py3-none-any.whl /python/protobuf-3.0.0-py2.py3-none-any.whl
-..........whl
次の例のように、予想される出力は(none)でなければなりません。
ls /python/*.whl | SOME SYNTAX ......
/python/argparse /python/Jinja2
/python/certifi /python/kazoo
/python/cffi /python/MarkupSafe
/python/chardet /python/protobuf
上記のパッケージ名だけを取得する方法についてのアイデアはありますか?
ベストアンサー1
まず、解析されないls
。代わりにglobを使用してください。
$ for f in /python/*.whl; do printf '%s\n' "${f//-*}"; done
/python/argparse
/python/certifi
/python/cffi
/python/chardet
/python/Jinja2
/python/kazoo
/python/MarkupSafe
/python/protobuf
-
これにより、パスの最初の項目以降のすべての内容が削除されます。したがって、-
パッケージ名の前に置くと誤った結果が得られます。