1 votos

¿Automator para eliminar todo el texto antes del guión ( - )?

Estoy tratando de crear una aplicación de Apple Automator que renombrará un grupo de archivos eliminando todo el texto antes e incluyendo un guión ( - ) que publicará un error si se intenta renombrar un archivo con no guión.

ex:

input is 001-10312233_033

output is 10312233_033

Entonces, si se ejecuta de nuevo en el mismo archivo (10312233_033) produciría un error o advertencia ya que no hay ningún guión.

¿Alguna idea de qué script en Automator hará que esto ocurra?

1voto

slm Puntos 118

Puede utilizar el do shell script desde AppleScript para invocar una CLI estándar de UNIX como awk , sed o grep . En este caso, ya que sólo quiere encontrar todas las ocurrencias de *- desde el principio de su cadena, alistaría sed para hacer esto.

Algo así eliminará todo hasta el primer guión ( - ):

set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"

Ejemplo

Digamos que tenemos este AppleScript:

set input to "001-10312233_033"
set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"
log "input:  " & input
log "output: " & output

Esto establece su cadena de ejemplo como la variable input . La segunda línea toma la variable input y se hace eco de la variable a la sed comando | sed 's/.*-//' . Esto quitará todo ( .* ) hasta el primer guión, ( - ), encontrado, y lo sustituye por nada (//) en sed .

Los 2 últimos comandos con el log simplemente se hace eco de las 2 variables, input & output .

Aquí está todo en acción:

$ cat regex.sh
#!/bin/bash

osascript <<END
set input to "001-10312233_033"
set output to do shell script "echo " & quoted form of input & " | sed 's/.*-//'"
log "input:  " & input
log "output: " & output
END

Asegúrese de que el script regex.sh es ejecutable:

$ chmod + regex.sh

Y lo ejecutamos así:

$ ./regex.sh
input:  001-10312233_033
output: 10312233_033

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