lapvika
Goto Top

Bestimmte Zeilen einer Datei addieren - Linux

Hallo zusammen,


ich habe eine Datei die wie folgt aussieht:

536870912 - System1_2
536870912 - System1_3
536870912 - System1_4
536870912 - System1_5
5242880 - System1_6
1342177280 - System2_1
1342177280 - System2_2
1342177280 - System2_3
1342177280 - System2_4
5242880 - System2_5
805306368 - System3_1
805306368 - System3_2
805306368 - System3_3
805306368 - System3_4
5242880 - System3_5

Die Zahlen sind die Größenangaben in KB.

ich möchte nun pro System die Gesamtgröße in TB ausgeben lassen und in eine neue Datei schreiben lassen.

Also

System 1 - 2,05 TB
System 2 - 3,05 TB
.
.
.


Weiß jemand Rat wie das funktioniert?

Vielen Dank!

Content-Key: 249036

Url: https://administrator.de/contentid/249036

Ausgedruckt am: 29.03.2024 um 00:03 Uhr

Mitglied: colinardo
Lösung colinardo 12.09.2014, aktualisiert am 26.05.2015 um 11:31:54 Uhr
Goto Top
Moin lapvika,
könntest du so machen:
#!/bin/bash
file="file.txt"  
cat "$file" | awk -F ' - |_' 'BEGIN{sys = ""; size = 0 }{if(sys == ""){sys = $2}; if(sys == $2){size += $1}else{printf("%s - %.2fTB\n",sys,tot);size = $1;sys = $2};tot = size / 1073741824}END{printf("%s - %.2fTB\n",sys,tot)}' >newfile.txt  
cat newfile.txt
Grüße Uwe
Mitglied: lapvika
lapvika 12.09.2014 um 13:13:59 Uhr
Goto Top
Danke vielmals Uwe!