2013-12-10 13 views
5

Also, ich habe ein Shell-Skript, um einige SVN-Befehle zu automatisieren. Ich gebe während des Skripts sowohl eine Logdatei als auch eine Standardausgabe aus und leite die SVN-Ausgabe nach/dev/null. Jetzt möchte ich die SVN-Ausgabe in meine Protokollierung einbeziehen, aber um sie von meiner eigenen Ausgabe zu trennen, würde ich gerne eine \t an jede Zeile der SVN-Ausgabe voranstellen. Kann das mit Shell-Skripten gemacht werden?Hinzufügen eines Tab-Zeichens vor der Ausgabe eines externen Skripts

Bearbeiten Ist das etwas, wofür ich AWK verwenden könnte? Ich werde nachforschen!

Bearbeiten Also, AWK scheint den Trick zu tun. Leider kann ich es nicht mit den Svn-Befehlen arbeiten.

svn add * | awk '{ print "\t"$0 }' 

Ausgaben ohne das vorangestellte Tab-Zeichen. Aber wenn ich zum Beispiel ls

ls -l | awk '{ print "\t"$0 }' 

Das Verzeichnis ist mit einem Tab-Zeichen vor jeder Zeile aufgeführt.

Bearbeiten Dank @daniel! Ich landete mit diesem

svn add * 2>&1 | sed 's/^/\t/' 

aswell Könnte das awk für das funktioniert gut beachten, verwendet wird, wenn richtig

svn add * 2>&1 | awk '{print "\t"$0 }' 
+0

Welchen Code haben Sie bisher? – Daniel

+0

Nun, ich dachte, ich könnte AWK dafür verwenden. Obwohl ich nicht sicher bin, wie man die Ausgabe von SVN zu AWK leitet. Warte, ich melde mich an und erhalte den Code in einer Sekunde –

Antwort

6

Sie können Sed verwenden. Anstatt die Ausgabe Ihres SVN-Befehls an /dev/null umzuleiten, können Sie ihn nach Sed pumpen.

svn ls https://svn.example.com 2>&1 | sed 's/^/ /' 
Verwandte Themen