Eliminar los caracteres que preceden al segundo guión bajo en los nombres de archivo

1

Tengo un montón de archivos y me gustaría eliminar todos los caracteres que preceden al segundo guión bajo en los nombres de los archivos. A continuación se muestra un ejemplo. ¿Cómo hago esto usando comandos bash?

[De]

021_D05_53715-F.ab1
021_D06_53936-F.ab1
022_C06_53935-F.ab1
030_C08_53993-F.ab1
048_A12_54057-F.ab1

[A]

53715-F.ab1
53936-F.ab1
53935-F.ab1
53993-F.ab1
54057-F.ab1
    
pregunta Guanyang Zhang 01.03.2016 - 19:32

1 respuesta

-1

Bash puede averiguar dónde está el último guión bajo usando una coincidencia de expresión regular, luego puede usar su extracción de subcadenas para obtener la parte del nombre de archivo que le interesa. Algo como esto:

#!/bin/bash

file="021_D05_53715-F.ab1"
pos='expr "$file" : '^.*_''
newfile=${file:$pos}
echo "$file -> $newfile"
    
respondido por el jsd 01.03.2016 - 20:25

Lea otras preguntas en las etiquetas