1 votos

Quitar los caracteres que preceden a la segunda subrayado en nombres de archivo

Tengo un montón de archivos y me gustaría eliminar todos los caracteres que preceden a la segunda subrayado en los nombres de archivo. Un ejemplo se muestra a continuación. ¿Cómo puedo hacer esto usando comandos en bash?

[Desde]

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

-1voto

jsd Puntos 456

Bash puede averiguar dónde está el último subrayado es el uso de una expresión regular, entonces usted puede utilizar su subcadena de extracción para obtener la parte del nombre de archivo que te preocupan. Algo como esto:

#!/bin/bash

file="021_D05_53715-F.ab1"
pos=`expr "$file" : '^.*_'`
newfile=${file:$pos}
echo "$file -> $newfile"

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X