最初のダッシュと数字より前のすべての項目を取得するように出力をフィルタリングします。

最初のダッシュと数字より前のすべての項目を取得するように出力をフィルタリングします。

ダッシュと数字の前に可能なすべての文字列をフィルタリングする必要があります。

fcp-workflow-4.3.0-SNAPSHOT.zip

例:

fcp - ワークフロー-4.3.0-SNAPSHOT.zip 

常に以下を得るべきです:fcp-workflowまたは名前が何であれ。

名前はおそらくfcp-worklflow-something-another-4.1.3....長さを知らないという意味です。

を試してみましたが、cut -d長さが変わる可能性があるため、grep操作を実行する方法があるかもしれません。

以下はいくつかの追加例です。

fcp-test-content-REVIEW-1.0-1.0.zip
dhl-pages-i18n-tags-blueprints-1.0.zip
GlobalLink Connect Plus-6.1.1_SP1.zip
logistics-ui-4.5.0-SNAPSHOT.zip"
logistics-ui-4.3.0-SNAPSHOT.zip"

答え1

bashパラメーター拡張を使用して、ダッシュと数字の後にある最も長い文字列を削除できます。

for file in *
do
  printf '%s turns into %s\n' "${file}" "${file%%-[[:digit:]]*}"
done

答え2

最初のダッシュより前のすべてのアイテムを取得するには、数字が続きます。

sed -E 's/-[[:digit:]].*$//' file

最初のダッシュと数字から行末まで空の文字列に置き換えます。


-i18nあなたの場合、幸運にも生き残った製品ラインを見ました。たとえば、最初のダッシュ + 数字 + 点 + 数字を一致させるには、次のようにします。

sed -E 's/-[[:digit:]]+\.[[:digit:]]+.*$//' file

関連情報