-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_removed_keywords
executable file
·70 lines (58 loc) · 2.35 KB
/
test_removed_keywords
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/bin/bash
##
#
# Durchsucht ab "LibraryPath" alle Verzeichnisse nach entfernten Schlüsselwörtern
#
# test_removed_keywords "PfadZumCalibreVerzeichnisOderUnterverzeichnis"
#
##
# Absolute path to this script, e.g. /home/user/bin/foo.sh
script=$(readlink -f "$0")
# Absolute path this script is in, thus /home/user/bin
script_path=$(dirname "$script")
cfg_log_level=$(look log_level "$script_path"/main.cfg | cut -d '=' -f 2-)
. "$script_path/libraries/logging.sh" "$cfg_log_level"
if [[ $cfg_log_level != "4" ]]; then
cfg_log_level=3
fi
# script_name=$(basename "$script")
library_path="$1"
if [[ -z $library_path ]]; then
echo "Benutzung: $script_name \"PfadZurCalibreDBOderUnterverzeichnis\""
exit 1
fi
files=$(find "$library_path" -type f -name "keyword_history" -exec grep -l "<" {} \;)
if [[ ! -z "$files" ]]; then
logInfo "$(wc -l <<< "$files") Datei(en) gefunden"
logInfo "$files"
while read file; do
removed_keywords=$(grep "< " "$file" | sed -e 's/^< \{0,1\}//g' | sort | uniq)
logInfo "\n$(wc -l <<< "$removed_keywords") gelöschte Schlüsselwörter für \"$(dirname "$file")\" gefunden"
logInfo "$removed_keywords"
working_dir=$(dirname "$file")
while read removed_keyword; do
result=$("$script_path"/tools/split_category_and_keyword "$removed_keyword")
category=$(grep "category" <<< "$result" | awk -F '\t' '{print $2}')
keyword=$(grep "keyword" <<< "$result" | awk -F '\t' '{print $2}')
# "$script_path"/tools/grep_potentially_false_positive "$working_dir" "$category" "$keyword"
escaped_removed_keyword=$(sed -e 's/[]\/$*.^|[]/\\&/g' <<< "< $removed_keyword")
echo
echo "Das Schlüsselwort \"$removed_keyword\" wurde einer der letzten Aktualisierungen als \"Gelöscht\" markiert. Diesen Vermerk entfernen?"
echo "n) Nein, nichts tun"
echo "j) Ja, Vermerk als gelöschtes Schlüsselwort entfernen"
while true; do
read -p "Bitte wählen: " input < /dev/tty
case $input in
n* )
break;;
j* )
sed -i "/^$escaped_removed_keyword[[:space:]]*\$/d" "$file"
logInfo "\"$keyword\" aus \"$file\" entfernt."
break;;
* ) echo "Ungültige Auswahl";;
esac
done
done <<< "$removed_keywords"
done <<< "$files"
fi
exit 0