Necesita capturar el nombre del archivo de la ruta del directorio haciendo un bucle en el archivo de datos

Necesita capturar el nombre del archivo de la ruta del directorio haciendo un bucle en el archivo de datos

Tengo el siguiente archivo de datos.

recID#  Attachment#            Attachment#2.          ...... Attachment #15 
101      c:/a/b/c/d/fil1.txt    c:/a/b/c/d/e/aaa.txt   ...... c:/a/b/c/d/e/fff.txt        
103      c:/a/b/c/d/abc.txt     c:/a/b/c/d/e/bbb.txt   ...... c:/a/b/c/d/e/ggg.txt   
104      c:/a/b/c/d/e/efg.txt   c:/a/b/c/d/e/ccc.txt   ...... c:/a/b/c/d/e/hhh.txt   
105      c:/a/b/c/mnop.txt      c:/a/b/c/d/e/ddd.txt   ...... c:/a/b/c/d/e/iii.txt 

Quiero capturar sólo el nombre del archivo, no todo el directorio. por debajo de la producción esperada.

rec ID#  Attachment1#         ttachment#2 ...... Attachment #15
101         fil1.txt            aaa.txt     ...... fff.txt      
103         abc.txt             bbb.txt     ...... ggg.txt  
104         efg.txt             ccc.txt     ...... hhh.txt  
105         mnop.txt            ddd.txt     ...... iii.txt  

También quiero comparar cada archivo en el directorio local c:\a\b\c disponible o no. Si está disponible, quiero crear el directorio /Test y mover todos los archivos que están disponibles en ese directorio.

por ejemplo: columna Adjunto1, el nombre del archivo fil1.txt, si está disponible en este directorio "c:\a\b\c", entonces quiero copiar el archivo del directorio "c:\a\b\c" a " c:\a\b\d".

Gracias

Respuesta1

Para eliminar la parte del directorio de todos los nombres de archivos que podría usar

sed 's#[^ \t]*/##g' inputfile > outputfile

o

awk '{gsub(/[^ \t]*\//,"",$0);print}' inputfile > outputfile

Del archivo de entrada de muestra en la pregunta obtengo este resultado

recID#  Attachment#            Attachment#2.          ...... Attachment #15 
101      fil1.txt    aaa.txt   ...... fff.txt        
103      abc.txt     bbb.txt   ...... ggg.txt   
104      efg.txt   ccc.txt   ...... hhh.txt   
105      mnop.txt      ddd.txt   ...... iii.txt 

Si el formato del resultado es importante, especifique en la pregunta qué requisitos tiene.

Como no queda claro en la pregunta cómo los directorios donde buscar archivos o hacia dónde mover archivos están relacionados con el archivo de entrada, no puedo responder la otra parte de la pregunta.

Editar:

En caso de que la entrada real contenga barras invertidas ( \) en lugar de barras diagonales ( /), se utilizan los siguientes comandos modificados [/\\]en lugar de /o \/para que funcionen con ambas variantes de entrada:

sed 's#[^ \t]*[/\\]##g' inputfile > outputfile
awk '{gsub(/[^ \t]*[/\\]/,"",$0);print}' inputfile > outputfile

información relacionada