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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 249036
Url: https://administrator.de/forum/bestimmte-zeilen-einer-datei-addieren-linux-249036.html
Ausgedruckt am: 24.04.2025 um 23:04 Uhr
2 Kommentare
Neuester Kommentar
Moin lapvika,
könntest du so machen:
Grüße Uwe
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