スペースなしで複数の単語を含む文字列の最初の単語を印刷するには?

スペースなしで複数の単語を含む文字列の最初の単語を印刷するには?

次のフォルダにappimageファイル名を印刷するシェルスクリプトがあります。

#! /bin/bash

Dir="$HOME/Applications/"
Dir2="$HOME/Downloads/"

cd -P "$Dir"
for f in *.AppImage; do
z=$(echo $f | head -n1 | awk '{print $1;}')
  echo $z
done

これで出力は次のようになります。

Altus-4.8.5-x86_64.AppImage
GitHubDesktop-linux-3.2.0-linux1.AppImage
webamp-desktop-0.3.0-x86_64.AppImage
YTDownloader.AppImage

出力が次のようになります。

Altus
GitHubDesktop-linux
webamp-desktop
YTDownloader

どうすればいいですか?

ベストアンサー1

サフィックスを削除するには%

for f in *.AppImage; do
  f=${f%.AppImage}
  echo "${f%%-[0-9]*}"
done

おすすめ記事