bashシェルの両側に拡張子のないファイルを一覧表示しますが、元のファイルは保持します。

bashシェルの両側に拡張子のないファイルを一覧表示しますが、元のファイルは保持します。

次のファイルから拡張子とプレフィックスを削除したいと思います。

awstats.www.test1.com.conf
awstats.www.test2.com.conf
awstats.www.test3.com.conf

awstats.とを削除し.conf、ファイルはwww.test1.comそのままにしてください。どうすればいいですか?

ベストアンサー1

ファイルと同じディレクトリにあるとします。

for name in awstats.*.conf; do
    basename "${name#awstats.}" .conf
done

ループ内のコードは最初にプレフィックスを削除し、次にawstats.標準引数置換を使用してサフィックスを削除します。$namebasename.conf

以下を呼び出さずに2つの手順で実行することもできますbasename

for name in awstats.*.conf; do
    newname=${name#awstats.}  # trim off prefix
    newname=${newname%.conf}  # trim off suffix
    printf '%s\n' "newname"
done

これら2つのループはファイル名を変更しません。

おすすめ記事