переименование имен файлов рекурсивно в более простое имя [закрыто]

0
20.02.2018, 22:53
2 ответа

prenameenfoque:

prename -n 's/^([^_]+)_.*_([^_]+)_[0-9]+\./1$1.$2./' *.fastq

(-n-ninguna acción ; mostrar qué archivos habrían sido renombrados)

1
28.01.2020, 02:43

Con bash y dirnamey una suposición de 1como 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.

0
28.01.2020, 02:43

Теги

Похожие вопросы