1 votos

¿Cómo anteponer a archivo de texto en AppleScript?

Tengo un archivo txt guardado en mi ordenador. Quiero Automator para añadir un poco de texto a la parte superior del archivo .txt. No quiero ningún texto en el archivo .txt se sobrescriba. También quiero una nueva línea para crear el nuevo texto.

El siguiente comando agrega texto al archivo .txt, pero al final del archivo:

do shell script "echo " & quoted form of TextToWrite & " >> " & quoted form of TargetFilepath

¿Anteponiendo a un archivo .txt es posible en AppleScript? Gracias.

1voto

William Puntos 6

Usted puede copiar el contenido actual del archivo a una variable, luego copia TextToWrite a TargetFilePath y luego añadir el nuevo contenido anterior a TargetFilePath .

set x to (do shell script "cat " & quoted from of TargetFilePath)

do shell script "echo " & quoted from of TextToWrite & " > " & quoted from of TargetFilePath

do shell script "echo " & quoted from of x & " >> " & quoted from of TargetFilePath

1voto

user3439894 Puntos 5883

Aquí es una manera de llevar a cabo la tarea, manteniendo el diseño del texto original intacto.

set TargetFilepath to "$HOME/Desktop/file.txt"
set OriginalText to quoted form of (do shell script "cat " & TargetFilepath)
set TextToWrite to quoted form of "This is new text to write.\n" & OriginalText
do shell script "echo " & TextToWrite & " > " & TargetFilepath

Tenga en cuenta que puede agregar dos \n, e.g set TextToWrite to quoted form of "This is new text to write.\n\n" si desea no sólo el salto de línea, pero una línea en blanco después de hacer el nuevo texto para agregar un párrafo independiente.

También si el TargetFilepath contiene espacios en blanco, asegúrese de escapar de ellos, con una doble barra diagonal inversa.

Ejemplo: set TargetFilepath to "$HOME/Desktop/file\\ name.txt"

En la Terminal, usted sólo tiene que escapar de un espacio con una barra diagonal inversa sin embargo, en el AppleScript do shell script comando, se requiere de un doble barra diagonal inversa.

1voto

Seif Puntos 121

Lo podría hacer así, evitando los scripts de shell.

set the_file to choose file
set the_content to read of the_file

set the_new_stuff to "Wassup?" & return & the_content
set the_file_path to the_file as string
set open_for_writing to open for access file the_file_path with write permission
write the_new_stuff to open_for_writing starting at 0
close access open_for_writing

Básicamente leer el texto en el archivo .txt, que ponga "¿Qué pasa?" y el regreso ante el texto, y luego escribes sobre lo que está en el archivo (porque empiezas en la posición 0).

0voto

hjdm Puntos 18

Aquí está un ejemplo de AppleScript puede utilizar:

set TargetFilepath to "$HOME/Desktop/file.txt"
set TextToWrite to quoted form of "NewText\n"
do shell script "echo " & TextToWrite & "$(cat " & TargetFilepath & ") > " & TargetFilepath

Utiliza la fórmula:echo "prepend\n $(cat input)" > input

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