次のパターンを使用して複数のファイルの名前を変更する必要があります。
sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_bold.json
到着
sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_bold.json
run-01_
各ファイル名には、4つの可能性(またはrun-02_
、、、run-03_
)run-04
のいずれかの種類のサブストリングのみが含まれています。
部分文字列は、指定されたrun-0[1-4]_
ファイルでランダムに複数回繰り返すことができます。
私は心を失い、私が見つけることができる最も近いものスタックオーバーフローに関するこの質問。しかし、文字列操作に関する私の限られた知識に基づいて、より多くの助けが欲しい!
ベストアンサー1
またはパール:
$ f=sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_bold.json
$ g=$(perl -pe 's/(_run-0[1-4])\1+/$1/' <<< "$f")
$ echo "$g"
sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_bold.json
Perlスタイルのrename(1)
プログラムを使用してください:
$ touch "$f"
$ ls sub*json
sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_run-01_bold.json
$ rename 's/(_run-0[1-4])\1+/$1/' sub*json
$ ls sub*json
sub-2795479_ses-V1_task-rest_acq-REST1_dir-AP_run-01_bold.json