AppleScript ha aggiunto valore all'interno del testo

0

Diciamo che ho il seguente file di testo:

  1. DEMO
  2. TEXT1
  3. TEXT2
  4. DEMO
  5. etc....

  6. DEMO

  7. TEXT1
  8. TEXT2
  9. DEMO
  10. etc....

  11. DEMO

  12. TEXT1
  13. TEXT2
  14. DEMO
  15. etc....

Vorrei aggiungere del testo tra il primo TEXT1 e TEXT2 (riga 2/3)

quindi il testo sarebbe come:

  1. DEMO
  2. TEXT1 MY TEXT HERE
  3. TEXT2
  4. DEMO
  5. etc....

  6. DEMO

  7. TEXT1
  8. TEXT2
  9. DEMO
  10. etc....

  11. DEMO

  12. TEXT1
  13. TEXT2
  14. DEMO
  15. etc....

So come posso filtrare il testo per ottenere il valore di qualsiasi testo che sarebbe lì con il codice sotto, ma come posso aggiungere del testo sul mio file di testo a questo empacement?

property leftEdge1 : "2. TEXT1"
property rightEdge1 : "3. TEXT2"
set myNewCaseNote to ""
set newFile to (path to desktop folder as text) & "_Note_Backup.txt"
set theSource to read file newFile
set theText to Unicode text
try
    set saveTID to text item delimiters
    set text item delimiters to leftEdge1
    set classValue to text item 2 of theSource
    set text item delimiters to rightEdge1
    set myCaseNote to text item 1 of classValue
    set text item delimiters to saveTID
    myCaseNote
end try
    
posta Kevin 28.05.2018 - 08:49
fonte

2 risposte

1

L'elaborazione del testo dovrebbe essere eseguita con lo script della shell. Di solito può essere fatto in una linea corta:

sed 's;^[^0-9]*2 TEXT1;& MY TEXT HERE;' text_file.txt

Supponendo che non ci fosse una sorta di problema di indentazione sopra. Basandoti su come sembra che tu intendessi, ecco un'altra soluzione:

sed 's;^[^0-9]*2 TEXT1;&\'$'\n'' MY TEXT HERE;' text_file.txt

AppleScript non è lo strumento giusto per questo lavoro.

    
risposta data 28.05.2018 - 17:17
fonte
1

Come spiegato nella precedente risposta, ci sono modi migliori per fare ciò che vuoi, ma se vuoi farlo usando AppleScript, puoi farlo con una versione modificata di questo:

on SearchAndReplace(SearchString, ReplaceString, SearchIn)
    set text item delimiters to SearchString
    set temp to text items of SearchIn
    set text item delimiters to ReplaceString
    set z to temp as string
    set text item delimiters to ""
    return z
end SearchAndReplace

on run
    set OriginalFullText to "DEMO
TEXT1
TEXT2
DEMO
etc....
DEMO
TEXT1
TEXT2
DEMO
etc....
DEMO
TEXT1
TEXT2
DEMO
etc...."

    set test to "TEXT1
TEXT2"
    set Text1 to "TEXT1"
    set Text2 to "TEXT2"
    set MyText to Text1 & " My Text Here" & return & Text2
    set Text2 to my SearchAndReplace(test, MyText, OriginalFullText)
end run

Spero che aiuti.

    
risposta data 28.05.2018 - 18:32
fonte

Leggi altre domande sui tag