여러 파일의 중간 이름을 한 번에 변경하는 방법은 무엇입니까?

여러 파일의 중간 이름을 한 번에 변경하는 방법은 무엇입니까?

예를 들어 190개의 파일이 있는데 L001중간에 추가하고 싶습니다. 더 나은 경우 cmd 명령이나 PowerShell을 사용하여 이 작업을 어떻게 수행할 수 있나요? 또한 어떤 숫자는 2자리이고 어떤 숫자는 1자리입니다.

PP-SD01_S1_R1.fastq.gz
PP-SD05_S1_R2.fastq.gz

PP-SD09_S20_R1.fastq.gz
PP-SD025_S20_R2.fastq.gz

PP-SD039_S22_R1.fastq.gz
PP-SD039_S22_R2.fastq.gz
...

L001와 사이에 각각 추가하고 싶습니다 . 예를 들어S....RPP-SD039_S22_L001_R1.fastq.gz

답변1

정규식을 사용하여 및 부분을 일치시키고 S...그 사이에 R...삽입하십시오 .L001

PS /tmp> Get-ChildItem -File -Filter *.fastq.gz | Rename-Item -NewName { $_.Name -replace '(S\d+)_(R\d+)', '$1_L001_$2' } -WhatIf
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD01_S1_R1.fastq.gz Destination: /tmp/PP-SD01_S1_L001_R1.fastq.gz".
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD025_S20_R2.fastq.gz Destination: /tmp/PP-SD025_S20_L001_R2.fastq.gz".
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD039_S22_R1.fastq.gz Destination: /tmp/PP-SD039_S22_L001_R1.fastq.gz".
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD039_S22_R2.fastq.gz Destination: /tmp/PP-SD039_S22_L001_R2.fastq.gz".
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD05_S1_R2.fastq.gz Destination: /tmp/PP-SD05_S1_L001_R2.fastq.gz".
What if: Performing the operation "Rename File" on target "Item: /tmp/PP-SD09_S20_R1.fastq.gz Destination: /tmp/PP-SD09_S20_L001_R1.fastq.gz".
PS /tmp>

더 짧은 버전:

dir *.fastq.gz | ren -Ne { $_.Name -replace '(S\d+)_(R\d+)', '$1_L001_$2' } -wi

이름이 올바른지 확인한 후 제거 -WhatIf/ -wi실제 이름 바꾸기를 수행합니다.

관련 정보