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