Özel durumunuzda aşağıdaki bash
komutu kullanabilirsiniz ( bash
macOS'ta varsayılan kabuktur):
for f in *.png; do echo mv "$f" "${f/_*_/_}"; done
Not: Dosya adlarınız ile başlamak bir şans varsa -
, yer --
önlerinde [1]:
mv -- "$f" "${f/_*_/_}"
Not: bir kuru çalıştırma gerçekleştirmek için echo
başına eklenmiştir mv
. Gerçek yeniden adlandırmayı gerçekleştirmek için bunu kaldırın.
Komut satırından çalıştırabilir veya bir komut dosyasında kullanabilirsiniz.
"${f/_*_/_}"
bir bash
parametre genişletme uygulamasıdır : (ilk) alt dize eşleme modeli _*_
değişmez değer ile değiştirilir ve addan _
orta simgeyi etkili bir şekilde keser.
- Bunun
_*_
bir model olduğunu (genelleme için de kullanılan bir joker karakter ifadesi), normal bir ifade olmadığını (kalıplar hakkında bilgi edinmek, çalıştırmak man bash
ve aramak için Pattern Matching
) unutmayın.
Dosyaları sık sık toplu olarak yeniden adlandırırsanız , Perl tabanlı rename
yardımcı program gibi özel bir araç yüklemeyi düşünün . MacOS'ta, popüler paket yöneticisi Homebrew'i aşağıdaki gibi kullanarak kurabilirsiniz :
brew install rename
İşte üstteki komutun karşılığı rename
:
rename -n -e 's/_.*_/_/' *.png
Yine, bu komut bir kuru çalıştırma gerçekleştirir; -n
gerçek yeniden adlandırma gerçekleştirmek için kaldırın .
- Benzer
bash
çözümü s/.../.../
gerçekleştirir metin ikame ama - aksine bash
gerçek - düzenli ifadeler kullanılmıştır.
[1] Özel değişken amacı --
çok kamu tarafından desteklenen, olarak ele alınması gerektiğini sonraki argümanlar sinyal için işlenen hatta eğer (değerler) nokta gibi seçenekleri nedeniyle ile başlayan -
şekilde, Jacob C notlar.