-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathremove_emojis_bash.sh
More file actions
executable file
·93 lines (75 loc) · 3.27 KB
/
Copy pathremove_emojis_bash.sh
File metadata and controls
executable file
·93 lines (75 loc) · 3.27 KB
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/bin/bash
# Скрипт для удаления всех эмодзи из файлов проекта
echo " Начинаем очистку эмодзи из проекта..."
# Список всех эмодзи для удаления
EMOJIS=(
"" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "" ""
"" "" "" "" "" "" "" "" "" "" "🔌" "🗄️"
"" "" "" "" "📯" "📍" "📇" "🎖️" "🎺" "📲"
"🔔" "🔕" "📢" "📣" "🔖" "🏷️" "📮" "🗳️" "✏️" "✒️"
"🖋️" "🖊️" "🖌️" "🖍️" "📒" "📓" "📔" "📕" "📗" "📘" "📙"
"📚" "📰" "🗞️" "📃" "📜" "" "📉" "🗒️" "🗓️"
"📆" "🗑️" "📎" "🖇️" "📐" "📏" "🗃" "🗄" "🗂" "🗑"
"🔓" "🔏" "🔐" "👨" ""
)
# Функция для создания резервной копии
backup_file() {
local file="$1"
cp "$file" "$file.backup.$(date +%Y%m%d_%H%M%S)"
echo " Создана резервная копия: $file.backup.$(date +%Y%m%d_%H%M%S)"
}
# Функция для удаления эмодзи из файла
clean_emojis_from_file() {
local file="$1"
local changed=false
# Проверяем, есть ли эмодзи в файле
for emoji in "${EMOJIS[@]}"; do
if grep -q "$emoji" "$file" 2>/dev/null; then
changed=true
break
fi
done
if [ "$changed" = true ]; then
echo " Обрабатываем: $file"
# Создаем резервную копию
backup_file "$file"
# Удаляем каждый эмодзи
for emoji in "${EMOJIS[@]}"; do
sed -i '' "s/$emoji//g" "$file"
done
# Убираем лишние пробелы
sed -i '' 's/ \+/ /g' "$file" # множественные пробелы
sed -i '' 's/^ \+//g' "$file" # пробелы в начале строк
echo " Файл очищен"
return 0
fi
return 1
}
# Счетчики
total_files=0
processed_files=0
# Находим все текстовые файлы (исключаем этот скрипт и бэкапы)
echo " Поиск файлов с эмодзи..."
find . -type f \( -name "*.py" -o -name "*.sh" -o -name "*.md" -o -name "*.txt" -o -name "*.cfg" -o -name "*.yaml" -o -name "*.yml" -o -name "*.log" \) \
! -name "remove_emojis_bash.sh" \
! -name "*.backup.*" \
! -path "./venv/*" \
! -path "./.git/*" \
! -path "./__pycache__/*" \
! -path "./node_modules/*" \
| while read -r file; do
total_files=$((total_files + 1))
if clean_emojis_from_file "$file"; then
processed_files=$((processed_files + 1))
fi
done
echo ""
echo " ОЧИСТКА ЗАВЕРШЕНА!"
echo " Статистика:"
echo " Всего файлов проверено: $total_files"
echo " Файлов с эмодзи обработано: $processed_files"
echo ""
echo " Резервные копии сохранены с расширением .backup.YYYYMMDD_HHMMSS"
echo "🗑️ Для удаления резервных копий используйте: find . -name '*.backup.*' -delete"