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

Printed on: April 20, 2024 at 00:04 o'clock

Member: colinardo
Solution colinardo Sep 12, 2014, updated at May 26, 2015 at 09:31:54 (UTC)
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
Member: lapvika
lapvika Sep 12, 2014 at 11:13:59 (UTC)
Goto Top
Danke vielmals Uwe!