File indexing completed on 2025-08-05 08:12:17
0001
0002
0003 filename="$1"
0004
0005
0006 if [ ! -f "$filename" ]; then
0007 echo "File $filename does not exist."
0008 exit 1
0009 fi
0010
0011
0012 numbers=()
0013
0014
0015 while IFS= read -r line; do
0016
0017 if [[ $line == "FEM Evt nr:"* ]]; then
0018
0019 first_number=$(echo "$line" | awk '{print $5}')
0020
0021
0022 if [[ ! -z "$first_number" ]]; then
0023
0024 numbers+=("$first_number")
0025 else
0026 numbers+=("-1")
0027
0028
0029 fi
0030 fi
0031 done < "$filename"
0032
0033 declare -A count
0034
0035 for num in "${numbers[@]}"; do
0036 ((count[$num]++))
0037
0038 done
0039
0040 mode=""
0041 maxCount=0
0042
0043
0044 for num in "${!count[@]}"; do
0045 echo $num
0046 if ((count[$num] > maxCount)); then
0047 maxCount=${count[$num]}
0048 mode=$num
0049 fi
0050 done
0051
0052 notEqualCount=0
0053
0054
0055 for num in "${numbers[@]}"; do
0056 if [[ $num -ne $mode ]]; then
0057 ((notEqualCount++))
0058 fi
0059 done
0060 total=${
0061 percentage=$(bc <<< "scale=4; (($total - $notEqualCount) / $total)*100")
0062
0063
0064
0065
0066
0067
0068 echo "Mode: $mode"
0069 echo "Percentage: $percentage"
0070
0071 notModeIndices=()
0072
0073 for i in "${!numbers[@]}"; do
0074 if [[ ${numbers[i]} -ne $mode ]]; then
0075 notModeIndices+=("$i")
0076 fi
0077 done
0078
0079 echo "Indices not equal to mode: ${notModeIndices[@]}"
0080
0081 echo "Mode: $mode" >> "$filename"
0082 echo "Percentage: $percentage" >> "$filename"
0083 echo "Indices not equal to mode: ${notModeIndices[@]}" >> "$filename"