Add sizegetter.py to calculate total size of files containing a specific keyword
This commit is contained in:
commit
95e2b086f3
3 changed files with 46 additions and 0 deletions
29
sizegetter.py
Normal file
29
sizegetter.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
import re
|
||||
import sys
|
||||
|
||||
def calculate_total_size(filename, keyword):
|
||||
pattern = re.compile(rf'{re.escape(keyword)}.*?(\d+(?:\.\d+)?)\s(MiB|GiB)')
|
||||
total_size_mib = 0
|
||||
|
||||
with open(filename, 'r', encoding='utf-8') as file:
|
||||
for line in file:
|
||||
match = pattern.search(line)
|
||||
if match:
|
||||
size, unit = match.groups()
|
||||
size = float(size)
|
||||
if unit == "GiB":
|
||||
size *= 1024 # Convert GiB to MiB
|
||||
total_size_mib += size
|
||||
|
||||
total_size_gib = total_size_mib / 1024
|
||||
return total_size_mib, total_size_gib
|
||||
|
||||
if __name__ == "__main__":
|
||||
if len(sys.argv) < 3:
|
||||
print("Usage: python script.py <path to file> <keyword>")
|
||||
sys.exit(1)
|
||||
|
||||
filename = sys.argv[1]
|
||||
keyword = sys.argv[2]
|
||||
total_size_mib, total_size_gib = calculate_total_size(filename, keyword)
|
||||
print(f"Total size of files containing '{keyword}': {total_size_gib:.2f} GiB ({total_size_mib:.0f} MiB)")
|
0
zipremove.py
Normal file
0
zipremove.py
Normal file
17
zipsize
Normal file
17
zipsize
Normal file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/bash
|
||||
|
||||
awk 'BEGIN{CONVFMT="%.2f"}
|
||||
{
|
||||
if ($1 ~ /^[0-9]+$/) {
|
||||
byte=$1;
|
||||
if (byte >= 1073741824)
|
||||
{printf("%.2f GB\t%s\n", byte/1073741824, $4)}
|
||||
else if (byte >= 1048576)
|
||||
{printf("%.2f MB\t%s\n", byte/1048576, $4)}
|
||||
else if (byte >= 1024)
|
||||
{printf("%.2f KB\t%s\n", byte/1024, $4)}
|
||||
else
|
||||
{print $1 " B\t" $4}
|
||||
}
|
||||
else {print $0}
|
||||
}'
|
Loading…
Reference in a new issue