wiki instituteSuche

FileManipulation

Sort

Sortierprobleme mit Sonderzeichen

Es dauerte eine geraume Weile, bis ich bei der Sortierung meines Literaturverzeichnisses (Zwischenüberschriften hatte ich im Vim schon durch Suchfunktion gekillt) der Dissertation mitbekam, dass sort die Latex-Befehle nicht mag. Auf stdout las ich irgendwann ein Feedback wie Set LC_ALL=C, und da ich mal wieder zu blöd war, zu erkennen, dass hier eine builtin-Funktion der bash angesprochen werden sollte, hampelte ich eine ganze Weile und ärgerte mich, dass sort nur auf stdout schrieb, nicht aber eine Umlenkung in eine Datei per ">" erlaubte. Ich begreife das aber bis heute nicht so ganz.

Was war die Aufgabe? Nach dem Gespräch mit Angeli bzgl. der Diss-Änderungen im April 2008 stand das Verzeichnis zur Disposition. Auch Hubert hatte sich daran gerieben:

Der Anschaulichkeit halber hier ein Ausschnitt aus der ursprünglichen Datei.

\part{Anhang}

\begin{flushleft}

\begin{thebibliography}{:}

\bibitem[BEST]{best} Best, Otto F.: Handbuch literarischer Fachbegriffe. Definitionen und Beispiele. Frankfurt/M. \textsuperscript{8}1987

\bibitem[BIOLOGIE 1980]{bio80} Vogel, Günter;  Angermann, Hartmut: Dtv-Atlas zur Biologie. Tafeln und Texte. (2 Bände) München \textsuperscript{16}1980

\bibitem[BREHMS TIERLEBEN]{brehm} Brehms Tierleben. Allgemeine Kunde des Tierreichs. Band 2. Die Vielfüßler, Insekten und Spinnenkerfe. Leipzig, Wien 1920

Die Lösung:

cat literaturverzeichnis.tex | LC_ALL=C sort -f -u >test2.tex

Hierbei funktioniert der Zeiger -u so, dass doppelte Zeilen gelöscht werden. Das war sinnvoll, da in der Ursprungsdatei nach jedem Eintrag eine Leerzeile eingefügt war. Somit hat man nachher eine schöne, saubere Datei. Nur muss das Kommando \part{Anhang} wieder in die erste Zeile bugsiert werden.

Sed

sed und reguläre ausdrücke:

sed 's/home\/slip/home\/slup/g' schwipp.txt | sed 's/\"slip/\"slup/g' > schwupp.txt

hilft bei:

gegeben: ein file mit n vorkommen des pfades
/home/slip
sowie der anführung
"slip"
in file (schwipp.txt). file nach umbenennung des usernamens. ersetzt wird nun alles zu slup und in das file schwupp.txt geschrieben.

-- MatthiasWeiss - 19 Nov 2004

27.04.2008 · MatthiasWeiss · r8