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

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

/Usuarios/Yo/Escritorio/Mis documentos/Mi 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í:

Así que 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 desaparece 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 el script de alguna manera borre todo el archivo (basado en que yo cometí un pequeño error en alguna parte).

Vaya, es una extraña coincidencia. Lo específico de la línea a borrar es la octava línea. El contenido de la línea es irrelevante.

Respuestas (1)

Aquí hay una solución de comandodo shell script de AppleScript que se usa para eliminar la línea de destino del archivo de destino, en el lugar.sed

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 sed opción -i '' a -i '.bak', por ejemplo:

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