Come posso eliminare una riga specifica di un file .txt in AppleScript?

3

Ho un file .txt salvato sul mio computer. Questa è la posizione del file:

/Users/Me/Desktop/My Documents/My Fruit Log.txt

Voglio che la mia applicazione Automator basata su AppleScript elimini una riga specifica del file .txt.

Il contenuto del file .txt ha il seguente aspetto:

Quindi, se:

set lineNumberToErase to 8

Il file .txt risultante dovrebbe essere:

Nota come non solo il testo su quella linea viene rimosso, ma anche l'intera linea è sparita.

Punti bonus se la soluzione include una sorta di meccanismo per garantire che non venga rimossa più di 1 riga dal file. Il mio timore quando automatizzare cancellazioni come questa è che lo script cancella in qualche modo l'intero file (basato su di me facendo un piccolo errore da qualche parte).

    
posta rubik's sphere 23.01.2017 - 11:01
fonte

1 risposta

2

Ecco una soluzione do shell script AppleScript comando che usa sed per eliminare la linea di destinazione del file di destinazione, sul posto.

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

Se desideri eseguire un backup del file di destinazione, modifica l'opzione sed -i '' in -i '.bak' , ad esempio:

do shell script "sed -i '.bak' -e '" & lineNumberToErase & "d' " & quoted form of targetFile
    
risposta data 23.01.2017 - 12:57
fonte

Leggi altre domande sui tag