Cara mengganti nama file dalam direktori seperti file berikut:, PMC21375.pdf.txt
saya harus diganti namanya menjadi 21375.txt
. yaitu, saya harus menghapus keduanya PMC
dan pdf
dari setiap nama file.
10
rename 's/(PMC|\.pdf)//g' *pdf.txt
Demo:
$ ls *txt
PMC21375.pdf.txt
$ rename -n 's/(PMC|\.pdf)//g' *txt
PMC21375.pdf.txt -> 21375.txt
dari shell
prompt. Ini sangat berguna, Anda dapat menempatkan beberapa kode perl seperti yang saya lakukan di substitusi.
Anda dapat melepas -n
(sakelar mode jalankan-kering) saat pengujian Anda menjadi valid.
Ada alat lain dengan nama yang sama yang mungkin atau mungkin tidak dapat melakukan ini, jadi berhati-hatilah.
Jika Anda menjalankan perintah berikut ( linux
)
$ file $(readlink -f $(type -p rename))
dan Anda memiliki hasil seperti
.../rename: Perl script, ASCII text executable
maka ini tampaknya menjadi alat yang tepat =)
Jika tidak, untuk menjadikannya default (biasanya sudah terjadi) Debian
dan turunannya seperti Ubuntu
:
$ sudo update-alternatives --set rename /path/to/rename
(ganti /path/to/rename
ke jalur perl's rename
perintah Anda .
Terakhir, alat ini awalnya ditulis oleh Larry Wall, ayah Perl.
.pdf
dari nama file.Selain perintah ganti nama, Anda dapat melakukannya langsung di bash (hanya satu cara dari banyak):
Diedit untuk menunjukkan kepada Pinyaka cara kerjanya:
sumber
.pdf
dari nama file.Ada beberapa utilitas untuk mengganti nama file, tetapi salah satu yang paling mudah digunakan adalah
rename
. Dalam kasus Anda, Anda mungkin dapat melakukan:Parameter pertama adalah bagian dari nama file yang akan diganti. Parameter kedua adalah string pengganti. Di sini saya menggunakan
''
untuk mewakili string kosong. Semua parameter berikut adalah file yang akan*txt
diganti nama, di sini saya digunakan untuk membatasi penggantian ke file teks.rename
seharusnya sudah ada jika Anda menjalankan Linux. Jika Anda menjalankan * BSD atau OS X, Anda mungkin harus menginstalnya terlebih dahulu.sumber
rename
. Ada satu dariutil-linux
, dan satu dariperl
dengan sintaks yang berbeda. Yang Anda maksudkan terlihat seperti yang dariutil-linux
yang kadang-kadang disebutrename.ul
agar tidak menjadi bingung denganrename
dariperl
, sementara pada beberapa sistem lain,rename
adalah yang dari util-linux dan yang dariperl
dipanggilprename
.rename 's/PMC// *.txt
danrename s/\.pdf// *.txt
Pertama buat cadangan file Anda! Maka pada dasarnya Anda dapat menggunakan python one-liner di direktori saat ini dengan bentuk umum:
dalam kasus spesifik Anda, Anda dapat menggunakan ini dua kali:
untuk menghapus
.pdf
dan lagi:untuk menghapus
PMC
.sumber
Coba ini:
for i in *.pdf.txt; do j=${i//\.pdf/}; j=${j//PMC/}; mv $i $j; done
The
j=${i//\.pdf/}
sarana untuk menggantikan.pdf
di$i
dengan apa-apa. Begitu juga dengan tugas j kedua menyingkirkan PMC.sumber
Jika Anda menggunakan
zsh
, itu adalah pekerjaan khas untukzmv
:(
zmv
menangani potensi konflik dengan anggun).sumber