2010-12-07 17 views

Antwort

0

Verwendung von regulären Ausdrücken sollte kurz Arbeit daraus machen:

ersetzen word\r\n mit word

Wie dies genau das getan, hängt von Ihrer Umgebung/Editor/Tools. Sie haben cf + lf erwähnt, was darauf hinweist, dass Sie Windows verwenden.

Wenn Sie zum Beispiel Notepad++ verwenden, hat es eingebaute Regex-Unterstützung und Sie können diese Einrichtungen verwenden, um Ihr Ziel zu erreichen.

aktualisieren: Ich habe diese Variante versucht, es funktioniert:

Herunterladen Vim für Windows.

Öffnen Sie Ihre Datei in Vim.

Darin geben Sie den folgenden Befehl ein:

%s/\v([[:digit:]]+NPN[[:alpha:]]+)\n/\1 /g 

Erläuterung:

%s - work for all lines 
\v - easier regex manipulation regarding backslashes 
([[:digit:]]+NPN[[:alpha:]]+) - match some digits, then NPN, then letters and capture this 
\n - match end of line 
\1 - replace everything with first group and two spaces 
g - do this many times for each line (this is basically optional) 
+0

Nun, es gibt viele verschiedene Formen meines spezifischen Wortes. zum Beispiel, wenn mein Schlüsselwort NPN ist, gibt es Wörter wie 02NPNPAGLUBE, 12NPNSEALANT und .... aber das Problem liegt am Ende all dieser Wörter, es gibt eine Absatzmarke (Zeichen eingeben) und ich möchte sie eliminieren und 2 setzen Räume. Wie? Wie kann ich auf ein Wort verweisen? – odiseh

0

ich nehme an, Sie zu fragen, wie es programmatisch zu tun.
LF und CR sind Zeichen und als solche haben sie einen ASCII-Code zugewiesen (10,13). Sie müssen die Textdatei laden, sie wortweise in einen neuen Puffer kopieren und immer dann, wenn Sie auf das Wort stoßen, das Sie ersetzen möchten - prüfen Sie, ob 10,13 folgt, und kopieren Sie diese Zeichen nicht, wenn dies der Fall ist.
Schreiben Sie dann den neuen Puffer in die Datei zurück.

0

Wenn Sie CRLF auf LF konvertieren:

sed 's/.$//'    # assumes that all lines end with CR/LF 

Wenn Sie CRLF ganz entfernen möchten

cat file1.txt | tr '\n' ' ' # join the lines with a space 
cat file1.txt | tr -d '\n' # join the lines without a space 

Sie können die Zeilenenden auf Unix (CRLF LF) umwandeln müssen zuerst und dann die Übersetzung machen.

Verwandte Themen