AppleScript: ¿Cómo escribir en una línea específica de un file de text?

Muestra el contenido de un file .txt en mi Mac:

This is sentence A. This is sentence B. This is sentence C. This is sentence D. This is sentence E. 

Quiero implementar una subrutina, como esta:

  • Enviando el mismo text a muchas personas, nadie ve a otros destinatarios
  • Deshabilitar auto sugiere escritura cuando se usa la tecla CTRL
  • Cómo enviar posts de text a un iPod
  • ¿Dónde está el service "resumir" en OS X Mavericks?
  • ¿Cómo puedo exportar una conversación de iMessage a .txt o .pdf desde Mac?
  • ¿Cuál es la diferencia entre ingresar return, opción (⌥) + return y ctrl + return en TextEdit?
  •  writeTextAtSpecificLine(("This is the newcomer sentence." & linefeed), 4) 

    de modo que el file de text se vería así:

     This is sentence A. This is sentence B. This is sentence C. This is the newcomer sentence This is sentence D. This is sentence E. 

    Sé que puedo lograr el resultado deseado haciendo que cada línea del file de text tenga su propio elemento en un object de list AppleScript, así:

     set theIndividualLinesOfTextFileAsList to paragraphs of (read theFilepathOfTxtFile) 

    Podría dividir la list , según el número de línea deseado, y luego volver a agregarla.

    Pero, ¿existe un método más eficiente?

    Mi file .txt real es mucho más largo que el contenido de muestra anterior.

  • ¿Cómo eliminar una línea específica de un párrafo en AppleScript, conservando el formatting original del text?
  • ¿Es posible presionar teclas en caracteres especiales en AppleScript?
  • ¿Puedo deshabilitar "copyr / search / compartir" automáticamente en mi iPhone SE?
  • AppleScript: ¿Cómo escribir en un file de text en una location específica (señalada por un personaje específico)?
  • AppleScript: ¿Cómo get el número de caracteres de un file .rtf?
  • ¿Cómo puedo exportar una conversación de iMessage a .txt o .pdf desde Mac?
  • 2 Solutions collect form web for “AppleScript: ¿Cómo escribir en una línea específica de un file de text?”

    Versión editada:

     set selected_file to ((path to documents folder as text) & "hom.txt") as alias set text_data to "This is the newcomer sentence." InsertLine(selected_file, text_data, 4) on InsertLine(the_file, the_data, num_line) try set file_id to open for access the_file with write permission set text_data to read file_id -- CHECK EMPTY LINE if (paragraph num_line of text_data) ≠ "" then set the_offset to (offset of (paragraph num_line of text_data) in text_data) - 1 set remaining_data to (the_data) & (text the_offset thru -1) of text_data set eof of file_id to the_offset else -- LINE IS EMPTY set num_line to num_line - 1 set the_count to (count of (characters of (paragraph num_line of text_data))) - 1 set the_offset to (offset of (paragraph num_line of text_data) in text_data) + the_count + 2 set remaining_data to the_data & linefeed & ((text (the_offset + 1) thru -1) of text_data) set eof of file_id to the_offset - 1 end if -- WRITE DATA TO FILE --write the_data to file_id -- INSERT LINE write remaining_data to file_id -- WRITE REMAINING DATA close access file_id on error try close access the_file end try end try end InsertLine 

    No estoy seguro de que esta sea la forma más eficiente, pero esto logrará lo que estás buscando. Funciona para mí en la última versión de Sierra

     tell application "TextEdit" to make new paragraph at after third paragraph of text of document 1 with data "This is the newcomer sentence. \n" 
    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).