prename
enfoque:
prename -n 's/^([^_]+)_.*_([^_]+)_[0-9]+\./1$1.$2./' *.fastq
(-n
-ninguna acción ; mostrar qué archivos habrían sido renombrados)
Con bash y dirname
y una suposición de 1
como prefijo principal:
shopt -s globstar
for file in./**/*.fastq
do
[[ $file =~ (...)_(..)_(....)_(..)_(...).fastq ]] &&
printf "%s\n" "mv -- "$file" "$(dirname "$file")"/1${BASH_REMATCH[1]}.${BASH_REMATCH[4]}.fastq"
done
Y con esta muestra "entrada":
touch A06_S6_L001_R1_001.fastq A06_S6_L001_R2_001.fastq B07_S6_L001_R1_001.fastq B07_S6_L001_R2_001.fastq C08_S6_L001_R1_001.fastq C08_S6_L001_R2_001.fastq
mkdir subdir
cp *.fastq subdir/
Esta es la salida resultante:
mv./A06_S6_L001_R1_001.fastq./1A06.R1.fastq
mv./A06_S6_L001_R2_001.fastq./1A06.R2.fastq
mv./B07_S6_L001_R1_001.fastq./1B07.R1.fastq
mv./B07_S6_L001_R2_001.fastq./1B07.R2.fastq
mv./C08_S6_L001_R1_001.fastq./1C08.R1.fastq
mv./C08_S6_L001_R2_001.fastq./1C08.R2.fastq
mv./subdir/A06_S6_L001_R1_001.fastq./subdir/1A06.R1.fastq
mv./subdir/A06_S6_L001_R2_001.fastq./subdir/1A06.R2.fastq
mv./subdir/B07_S6_L001_R1_001.fastq./subdir/1B07.R1.fastq
mv./subdir/B07_S6_L001_R2_001.fastq./subdir/1B07.R2.fastq
mv./subdir/C08_S6_L001_R1_001.fastq./subdir/1C08.R1.fastq
mv./subdir/C08_S6_L001_R2_001.fastq./subdir/1C08.R2.fastq
Elimine printf "%s\n"
si los resultados parecen correctos.