¿Cómo puedo eliminar una línea específica de un archivo .txt en AppleScript?

3

Tengo un archivo .txt guardado en mi computadora. Esta es la ubicación del archivo:

  

/ Users / Me / Desktop / Mis documentos / My Fruit Log.txt

Quiero que mi aplicación Automator basada en AppleScript elimine una línea específica del archivo .txt.

El contenido del archivo .txt se ve así:

Entonces, si:

set lineNumberToErase to 8

El archivo .txt resultante debe ser:

Observe cómo no solo se elimina el texto de esa línea, sino que también se ha ido toda la línea.

Puntos de bonificación si la solución incluye algún tipo de mecanismo para garantizar que no se elimine más de 1 línea del archivo. Mi temor al automatizar eliminaciones como esta es que la secuencia de comandos de alguna manera borra todo el archivo (basado en que cometí un pequeño error en alguna parte).

    
pregunta rubik's sphere 23.01.2017 - 11:01

1 respuesta

2

Aquí hay una solución do shell script AppleScript comando que usa sed para eliminar la línea de destino del archivo de destino, in situ.

set targetFile to "/Users/Me/Desktop/My Documents/My Fruit Log.txt"
set lineNumberToErase to 8

do shell script "sed -i '' -e '" & lineNumberToErase & "d' " & quoted form of targetFile

Si desea realizar una copia de seguridad del archivo de destino, cambie la opción sed -i '' por -i '.bak' , por ejemplo:

do shell script "sed -i '.bak' -e '" & lineNumberToErase & "d' " & quoted form of targetFile
    
respondido por el user3439894 23.01.2017 - 12:57

Lea otras preguntas en las etiquetas