Forum: PC-Programmierung Shell Text verarbeiten


von Christoph a. (chrichri)


Lesenswert?

Hi
ich bin leider noch ziemlich schlecht was Shell-Scripte betrifft.

Ich möchte ein script schreiben dass die ausgabe von "df" etwas 
manipuliert und in eine textdatei schreibt.

df -h >> datei.txt
klappt natürlich wunderbar

dann steht, wie es auch sein soll, so etwas in der datei:
1
Filesystem      Size   Used  Avail Capacity  Mounted on
2
/dev/disk0s2   297Gi  226Gi   71Gi    77%    /
3
devfs          211Ki  211Ki    0Bi   100%    /dev
4
...

Ich brauche die Ausgabe aber etwas manipuliert. Z.b mit zwei führenden 
Leerzeichen pro Zeile
1
  Filesystem      Size   Used  Avail Capacity  Mounted on
2
  /dev/disk0s2   297Gi  226Gi   71Gi    77%    /
3
  devfs          211Ki  211Ki    0Bi   100%    /dev
4
  ...

oder Leerzeilen zwischen den Zeilen
1
Filesystem      Size   Used  Avail Capacity  Mounted on
2
3
/dev/disk0s2   297Gi  226Gi   71Gi    77%    /
4
5
devfs          211Ki  211Ki    0Bi   100%    /dev
6
7
...

Ich denke die Probleme unterscheiden sich ja nicht so sehr, nur habe ich 
gerade keinen Plan wie ich das ansetzen soll.

P.S. ich verwende die Bash. Wobei das ja auch allgemein machbar sein 
sollte?

Gruß
Christoph

von Marko B. (glagnar)


Lesenswert?

Text um 2 einrücken:
1
df -h | perl -ne 'print "  ".$_'

Leerzeilen hinzufügen:
1
df -h | perl -ne 'print $_."\n"'

von Benjamin U. (utzus)


Lesenswert?

für solche Aufgaben solltest du dir mal sed anschauen.
Leerzeile:
1
df -h | sed G

Grüße

von Yalu X. (yalu) (Moderator)


Lesenswert?

Etwas länger, dafür aber ohne externe Kommandos (außer dem df
natürlich):
1
df -h | while read a; do echo "  $a"; done >>datei.txt
2
3
df -h | while read a; do echo -e "$a\n"; done >>datei.txt

von Christoph a. (chrichri)


Lesenswert?

Sauber, danke

Is ja eigentlich alles ganz einfach :)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.