いくつかのファイルの名前を変更したいと思います。次の形式のファイルがたくさんあります?????.pdb
。
ファイル名は5桁(数字と文字)で構成され、新しい名前は次のとおりです????_biounit?.pdb
。前の名前の最初の4文字は保持し、5番目の文字は「biounits」という単語の後に挿入する必要があります。
いくつかの例:
ソースファイル:
1b471.pdb 1caz4.pdb 1ca93.pdb
新しいファイル:
1b47_biounit1.pdb 1caz_biounit4.pdb 1ca9_biounit3.pdb
これを行うためにcomand mvを試しましたが、最初の4文字と5番目の文字を区別することはできません。誰でも私を助けることができますか?
答え1
シェルループを使用してください:
for f in ?????.pdb; do mv "$f" "${f%?.pdb}_biounit${f#????}"; done
${f%?.pdb}
?.pdb
ファイル名の末尾から削除されます。${f#????}
????
ファイル名の先頭から削除します。
答え2
Perlの名前変更ツールを使用してください。
rename -n 's/(....)(.)/$1_biounit$2/' ?????.pdb
-n
出力が満足な場合は削除してください。