ファイルがたくさんあります。
academic-cap.svg arrow-narrow-right.svg
ban.svg chart-bar.svg
adjustments.svg arrow-narrow-up.svg
beaker.svg chart-pie.svg
...
...
変えたい
- 最初の文字とダッシュの後には大文字で表記してください。
- ダッシュを削除
- 最後にアイコンを追加
- ファイル名をsvelteに変更します。
AcademicCapIcon.svelte ArrowNarrowRightIcon.svelte
BanIcon.svelte ChartBarIcon.svelte
...
Bashスクリプトや端末をどのように使用しますか?
答え1
Perlベースのrename
ユーティリティ(とも呼ばれるprename
)を使用してください。
rename -n 's/./\U$&/;s/-(.)/\U$1/g;s/\.svg$/Icon.svelte/' -- *.svg
上記のコマンドは、ファイル名のワイルドカードパターンと一致する現在のディレクトリの各名前に3つのPerl代替操作を適用します*.svg
。
最初の置換は、s/./\U$&/
ファイル名の最初の文字を独自の大文字のバリアントに置き換えます。
2 番目の置換は、s/-(.)/\U$1/g
ダッシュの後に表示される各文字をその文字の大文字バリアントに置き換えると同時にダッシュを削除します。
最後の代理人s/\.svg$/Icon.svelte/
は、.svg
ファイル名のサフィックスをIcon.svelte
。
オプションを使用する-n
と、rename
ファイル名の変換が表示されますが実行されません。後でファイル名を詳細に変更するように-n
変更できます。-v
質問に名前を付ける例:
$ ls
academic-cap.svg ban.svg
adjustments.svg beaker.svg
arrow-narrow-right.svg chart-bar.svg
arrow-narrow-up.svg chart-pie.svg
$ rename -n 's/./\U$&/;s/-(.)/\U$1/g;s/\.svg$/Icon.svelte/' -- *.svg
rename(academic-cap.svg, AcademicCapIcon.svelte)
rename(adjustments.svg, AdjustmentsIcon.svelte)
rename(arrow-narrow-right.svg, ArrowNarrowRightIcon.svelte)
rename(arrow-narrow-up.svg, ArrowNarrowUpIcon.svelte)
rename(ban.svg, BanIcon.svelte)
rename(beaker.svg, BeakerIcon.svelte)
rename(chart-bar.svg, ChartBarIcon.svelte)
rename(chart-pie.svg, ChartPieIcon.svelte)