Для любителей очень шумно, когда использование ЦП составляет 100%. Это не нормально для использования ЦП на уровне 100%.
Вы можете попытаться найти виновника для этого использования ЦП, перейдя в Sytem-> Administration-> System Monitor и щелкнув вкладку «Процессы». Вы можете фильтровать с использованием ЦП, чтобы процессы, использующие большинство CPU, находились наверху:
Если вы сообщите нам этот процесс, мы сможем вам помочь. Если вы можете сделать снимок экрана, как тот, который я взял, и добавить его к вашему вопросу, это было бы полезно.
Символы M-BM- представляют собой ASCII-представление последовательности байтов 0xc2 0xa0, которая является кодировкой UTF8 символа юникода A0 - неразрывным символом пробела. Этот символ может быть вставлен в документы LibreOffice и Microsoft Word, используя последовательность клавиш Ctrl + Shift + SPACE.
Например, если мы создадим новый .odt-документ в LibreOffice и наберите ABC Ctrl + Shift + Shift DEF, затем Save As... Text (игнорируя предупреждение о том, что документ может содержать функции, которые не могут быть сохранены в этом формате), затем просмотрите полученный .txt файл с помощью cat: [ ! d4]
$ cat nbsp.txt
ABC DEF
, а затем снова с переключателем -v для отображения непечатаемых символов
$ cat -v nbsp.txt
M-oM-;M-?ABCM-BM- DEF
Обратите внимание, что мы также получаем начальную последовательность M-oM-;M-? или шестнадцатеричную 0xef 0xbb 0xbf, которая является меткой порядка байтов UTF8 (BOM), согласующейся с типом файла, сообщенным командой file, т. е.
$ file nbsp.txt
nbsp.txt: UTF-8 Unicode (with BOM) text
[!d13 ] Используя od для печати шестнадцатеричных значений в порядке байтов, мы видим
$ od -tx1 nbsp.txt
0000000 ef bb bf 41 42 43 c2 a0 44 45 46 0a
0000014
. Эти символы можно манипулировать с помощью стандартных инструментов, таких как sed или tr, указав шестнадцатеричные коды как escape-последовательности, например заменить неиспользуемое пространство простым пространством ASCII
$ sed 's/\xc2\xa0/ /g' nbsp.txt
ABC DEF
Повторная проверка с помощью od подтверждает замену обычным пространством ASCII 0x20 (десятичное число 32)
$ sed 's/\xc2\xa0/ /g' nbsp.txt | od -tx1
0000000 ef bb bf 41 42 43 20 44 45 46 0a
0000013
В gnome-терминале (и, возможно, других эмуляторах терминала, поддерживающих UTF8), также можно ввести значение кодовой точки Юникода непосредственно с помощью последовательности клавиш Shift [ ! d6] + Shift + SPACE , за которым следует шестнадцатеричное значение, затем клавиша Enter - последовательность отображается сначала как u ... но затем символ должен составлять, когда вы нажимаете Enter, например, для той же незаменимой замены пространства мы можем сделать
$ sed 's/Ctrl+Shift+ua0
, который отображается как
$ sed 's/̲/̲u̲a̲0̲
, а затем завершается как
$ sed 's/ / /g' nbsp.txt
ABC DEF
Используя cat -v, мы можем подтвердить, что последовательность M-BM- стала обычным пространством
$ sed 's/ / /g' nbsp.txt | cat -v
M-oM-;M-?ABC DEF
Вы можете захотеть посмотрите на более общие кодирующие преобразователи, такие как значение кодовой точки и uconv.
Вы можете удалить ^ M из файлов непосредственно с помощью команды sed, например :
sed -i'.bak' s/\r//g *.*
Если вы довольны изменениями, удалите файлы .bak:
rm -v *.bak
«cat -v file» покажет непечатаемые символы в файле. Просто перенаправьте вывод на какой-то временный файл и используйте vim для замены символов M-BM - ничего.
% s / M-BM- // g
Самое простое решение. [ ! d2]
маленький скрипт для удаления этого дьявола M-BM-caracter! ;) На всякий случай будет помощь любому человеку.
#!/bin/bash
#############################################################################
# SCRIPT: M-BM-Remover.sh
# DESCRIPTION:
# This script will be able to detect hidden caracter "M-BM-",
# And/Or remove this !
# REVISIONS:
# 2014/06/11 YG
#____________________________________________________________________________
#
# PARAMETERS:
# > $1 :TARGET, (e.g. '"*.sh"' )
# > $2 :ACTION, (e.g. 'remove' )
# > $2 :BACKUP, (e.g. '' )
#
#############################################################################
TARGET=$1
ACTION=$2
BACKUP=$3
if [ "$TARGET" = "" ]
then
echo 'Need to choose target file'
echo 'M-BM-Remover [TARGET] [show/remove] [backup]'
echo 'Example : M-BM-Remover "*.sh" remove backup'
exit
fi
echo "ACTION = $ACTION";
echo "TARGET = $TARGET";
echo
if [ "$ACTION" = "show" ]
then
for file in $TARGET
do
if [ "$file" != "M-BM-Remover.sh" ]
then
echo "Traitement de $file ..."
cat -v $file | grep M-BM-
NB=`cat -v $file | grep M-BM- | wc -l`
echo "Occurence(s) : $NB"
fi
done
fi
if [ "$ACTION" = "remove" ] || [ "$ACTION" = "" ]
then
for file in $TARGET
do
if [ "$file" != "M-BM-Remover.sh" ]
then
echo "Traitement de $file ..."
NB=`cat -v $file | grep M-BM- | wc -l`
if [ "$BACKUP" = "backup" ]
then
cat $file > $file.bak
fi
cat -v $file.bak | sed s/M-BM-//g > $file
echo "Occurence(s) removed : $NB"
fi
echo
done
fi