2016-06-17 10 views
0

Ich möchte eine Datei lesen und das Wort "the" finden und einen Zeilenvorschub einführen. d. h., finde und ersetze den Text ‘the’ bis ‘/nthe’ Kannst du bitte helfen?Ersetzen Sie eine Zeichenfolge durch einen Zeilenvorschub in SAS

/*input.txt*/ 
    Many a slip between the cup and the lip. 

    /*Required output*/ 
    Many a slip between 
    the cup and 
    the lip. 

    /*sas datastep*/ 
    data inp; 
    infile "c:/tmp/input.txt"; 
    /*ADD LOGIC*/ 
    infile "c:/tmp/output.txt"; 
    run; 
+0

mehrere Optionen, würde man http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer sein. htm # a000215027.htm – kl78

+0

Transwd erstellt den Text als '/ n', anstatt einen Zeilenvorschub zu erstellen. test_txt = tranwrd (Text, "das", "/ nthe"); – AKS

+1

Zeilenvorschub wird als '0A'x in sas interpretiert, also versuche test_txt = tranwrd (Text, "die", cat (' 0A'x, "die")); (cr ist '0d'x, wenn Sie es auch hinzufügen möchten) – kl78

Antwort

3

Bereits in den Kommentaren beantwortet, als Antwort zusammengefasst

Es gibt mehrere Optionen, um ein Suchen und Ersetzen in SAS zu tun, schlage ich vor tranwrd verwenden würde.

SAS interpretiert einen Zeilenvorschub als '0A'x.
Für einen Wagenrücklauf würden Sie '0D'x verwenden.

So ist die Lösung für Sie wäre:

test_txt =tranwrd(text,"the",cat('0A'x,"the"));