Bashスクリプトで拡張子のないファイルを選択するには?

Bashスクリプトで拡張子のないファイルを選択するには?

現在のディレクトリにxinitrc、Alphabetsoup、ieat.pieファイルがあるとします。 xinitrcとAlphabetsoupのみを選択するには、bashスクリプトが必要です。

ベストアンサー1

bash拡張globは、名前に何もないファイル+([^.])と一致します。.設定を解除しないでくださいshopt extglob(最新のbashインストールではデフォルト値である必要があります)。このモードの意味は次のとおりです。

以下を除く任意の数(ただし少なくとも1つ)の文字.

すべてのファイル名を配列に入れることができます。

NO_EXTENSION=( +([^.]) )

ファイル名を印刷できます。

printf "%s\n" +([^.])

または、すべてユーティリティに渡します。

ls -- +([^.])

配列ではなく変数に保存するには、ファイル名にスペースが含まれていないことを確認する必要があります。これを確実に確信している場合は、次のようにすることができます。

NO_EXTENSION=$(echo +([^.]))

配列の場合とは異なり、パス名拡張を実装するにはechoを呼び出す必要があります。ファイル名の特殊文字について心配する必要はないので、これらのリストには配列を使用することをお勧めします。

おすすめ記事