区切り文字の前の最初の単語のみを含めるようにファイル名を切り捨てる方法

区切り文字の前の最初の単語のみを含めるようにファイル名を切り捨てる方法

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

-これにより、パスの最初の項目以降のすべての内容が削除されます。したがって、-パッケージ名の前に置くと誤った結果が得られます。

おすすめ記事