1

「ABI-Data」という名前のディレクトリに次のようなファイルが含まれていました

10_2012-08-22_B02_014.fsa
1_2012-08-22_A01_015.fsa
11_2012-08-22_C02_012.fsa
12_2012-08-22_D02_010.fsa
14_2012-08-22_F02_006.fsa

次のような出力が必要です

abi_B02_014.fsa
abi_A01_015.fsa
abi_C02_012.fsa
abi_D02_010.fsa
abi_F02_006.fsa

要するに、スコアの2番目までのすべてのファイルの名前を「abi」などの文字で変更したいと考えています。

作業ディレクトリで rename コマンドを使用してみABI-Dataました

rename -v -n /*_*_/abi/ *.fsa

しかし、次のようなエラーが見つかりました

Quantifier follows nothing in regex; marked by <-- HERE in m/* <-- HERE _*_/ at (eval 1) line 1.

私が間違っている場所を提案するか、2番目のアンダースコアまでのすべての文字を切り刻みabi、すべてのファイル名に接尾辞として入れるコマンド/スクリプト/コードを提案してください。

4

2 に答える 2

1

私は通常これを使用します: ReNamer - http://www.den4b.com/?x=screenshots&product=renamer

リネーム機能一覧

通常、それは仕事をします。そこには複雑な正規表現ソリューションがあります。

于 2012-12-11T09:14:25.670 に答える
1

cut必要な部分を取得するためにfor ループを実行できます。

for i in `ls ABI-Data/`; do j=`echo $i|cut -d "_" -f 3-` ; mv ABI-Data/$i ABI-Data/abi_$j ; done 

またはrename

rename -v  s/[^_]*_[^_]*_/abi_/ *.fsa 
于 2012-12-11T09:24:03.873 に答える