次のファイルがあります。合計4つのファイルがあります:
cert1.pem chain1.pem fullchain1.pem privkey1.pem
各ファイルの尾番号を切り取りたい(1
ここ)。シェルスクリプトを使用してどのように自動化できますか?私はいくつかのコマンドに精通していますが、この種のバッチ処理を処理するためのシェルスクリプトを書くのはうまくいかないと思います。
答え1
末尾の数字が単一の数字で、両方とも.pem
ファイルの場合は、パラメータ拡張を使用して数字と拡張子を削除してから拡張子を置き換えることができます。
for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
%%
パラメータ拡張は、単一文字()のうち最も長い末尾の一致を削除するように機能し?
、.pem
完了すると手動で.pem
最後に再追加します。
certX.pem
これは、またはfullchain-.pem
その?
文字が単一の文字に拡張されるなどのファイル名も変更されることに注意してください。
上記の例では、名前を変更するファイルを手動でリストしたため、これはより安全になりました。同様のアプローチを使用することもできます。
for file in *1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
.... を1.pem
使用してファイルを明示的に繰り返します。
設定:
$ ls
cert1.pem chain1.pem fullchain1.pem privkey1.pem
実装する:
$ for file in cert1.pem chain1.pem fullchain1.pem privkey1.pem
do
mv "$file" "${file%%?.pem}.pem"
done
結果:
$ ls
cert.pem chain.pem fullchain.pem privkey.pem