Ersetzen "#", "$", "%", "&" und "_" mit "\#", "\$", "\%", "\&" und "\_"

Habe ich eine nur-text-Dokument, die ich möchte zu kompilieren innen LaTeX. Aber manchmal hat es die Zeichen, "#", "$", "%", "&" und "_". Zum kompilieren richtig in LaTeX, ich muss zuerst ersetzen Sie diese Zeichen durch "#", "\$", "\%", "\&" und "_". Ich habe diese Zeile in sed:

sed -i 's/\#/\\\#/g' ./file.txt
sed -i 's/\$/\\\$/g' ./file.txt
sed -i 's/\%/\\\%/g' ./file.txt
sed -i 's/\&/\\\&/g' ./file.txt
sed -i 's/\_/\\\_/g' ./file.txt

Ist das richtig?

Leider ist die Datei zu groß zum öffnen in einem beliebigen GUI-software, also die überprüfung, ob meine sed Zeile korrekt mit einem text-editor, ist schwierig. Ich habe versucht, die Suche mit grep, aber die Suche funktioniert nicht wie erwartet (z.B. unten, ich suchte für alle Zeilen, die mit "$"):

grep "\$" file.txt
  • Was ist der beste Weg, um die "\" vor diesen Zeichen?
  • Wie kann ich grep erfolgreich überprüfen Sie die Zeilen mit Ersetzungen?
Können Sie garantieren keine speziellen Zeichen, die BEREITS entgangen?
Wie funktioniert der grep arbeiten, wenn auch nicht wie erwartet?
Wenn ich grep "\$" file.txt es zu sein scheint, drucken alles oder fast alles. Ich weiß nicht, warum er den Druck, so viel text, wie "$" ist ganz selten.
Ich denke, es ist unwahrscheinlich, es sind bereits geflohen Zeichen in dem Dokument. "\" scheint ziemlich Häufig, aber ich weiß nicht, Situationen, in denen es als escape-Zeichen verwendet.
Versuchen grep '\\\$' file.txt. Wenn Sie nicht entkommen können den umgekehrten Schrägstrich (und die dollar-Zeichen), dann die dollar-Zeichen maskiert, die erzählt grep um eine wortwörtliche "$" (statt am Ende der Zeile - da "$" hat eine Besondere Bedeutung in regexes).

InformationsquelleAutor Village | 2012-01-21

Schreibe einen Kommentar