sed -e 's/[ ].*[ ]/ /' yourfile
Это проверяет крайний левый пробел и вплоть до крайнего правого пробела и заменяет его одним пробелом. IOW, первое и последнее поля сохраняются.
Предполагается, что нет начальных и / или конечных пробелов. Вкладок нет.
В противном случае мы всегда можем сделать следующее:
SPC=`echo 'x' | tr 'x' '\040'`
TAB=`echo 'x' | tr 'x' '\011'`
WS="[$TAB$SPC]"
sed -e "s/^$WS*//;s/${WS}\$//;s/${WS}.*${WS}/${SPC}/" < yourfile
Эта проблема возникла, по крайней мере, пару лет назад. Это проблема многих владельцев Asus, но не только для устройств Asus. Кроме того, это не зависит от Debian, хотя в вашем случае и Ubuntu, и Mint имеют корни Debian.
Это непростой вопрос, потому что кажется, что все зависит от каждого предлагаемого решения (и все они имеют небольшие различия в оборудовании). Есть бесчисленное множество потоков, пытающихся решить эту проблему.
Заметные сообщения об ошибках на Launchpad (в зависимости от вашей модели Asus):
Применимая ветка об ошибках на Kernel.org:
Если вы не хотите вносить исправления в ядро, вы можете попробовать несколько возможных решений для среды выполнения.
(Примечание: терминал можно открыть с помощью Ctrl + Alt + T
)
Отключить / включить драйвер мыши:
Вы можете удалить, а затем снова вставить модуль драйвера мыши с помощью следующие команды:
sudo modprobe -r psmouse
sudo modprobe psmouse
Отключить / включить через Xinput:
Найдите идентификатор трекпада с помощью следующей команды:
xinput --list
Как только вы получите идентификатор устройства - в этом примере я назову его 12
- попробуйте отключить и включить устройство с помощью:
xinput --disable 12
xinput --enable 12
(Замените 12
идентификатором вашего трекпада).
Альтернатива:
В качестве альтернативы вы можете попробовать перейти в спящий режим вместо приостановки. Предположительно, проблемы с гибернацией не так распространены.
Я называю этот скрипт mouse-reset
. Он удаляет, а затем modprobe
список модулей, связанных с мышью -:
#!/bin/bash
modules=(psmouse hid_multitouch elan_i2c)
for mod in "${modules[@]}"; do
sudo rmmod "$mod" 2> /dev/null
sudo modprobe -v "$mod" 2> /dev/null
done
То, что я делаю, чтобы перезапустить драйвер сенсорной панели, похоже на то, что предложил Том Хейл. Я создал скрипт с именем touch _restart.sh :
.#!/bin/bash
$sudo rmmod i2c_hid && $sudo modprobe i2c_hid
, а затем вы всегда можете быстро выполнить его с помощью :echo "su _pass"|sudo -S sh touch _restart.sh
Кроме того, кажется, что отключение «Отключить сенсорную панель при наборе текста» увеличивает периоды между каждым зависанием сенсорной панели (она очень часто зависает на моем ноутбуке Asus ).
Я могу подтвердить аналогичную проблему с моей сенсорной панелью на HP ProBook 450 G6 с Ubuntu 18.04, она сильно тормозила после приостановки.
Что мне помогло :создать/lib/systemd/system-sleep/touchpad
:
#!/bin/sh
case $1 in
post)
/sbin/rmmod i2c_hid && /sbin/modprobe i2c_hid
;;
esac
сделать файл исполняемым chmod +x /lib/systemd/system-sleep/touchpad
и проверьте (приостановите работу компьютера и снова включите -)
Проблема решена.
Команды:-
uname -a ------->>> проверить версию ядра
sudo apt install --install -рекомендует linux -generic -hwe -18.04 xserver -xorg -hwe -18.04 ------>>> обновить ядро до Ядро 5.0.0 -37 -универсальный
На Lenovo v145 15AST Ubuntu 20.04 с Bluetooth-мышью Logitech я создал скрипт
/lib/systemd/system-sleep/KickPebbleMouse.sh
Который используетrfkill
#!/bin/sh
# put this in /lib/systemd/system-sleep/
# kick the bluetooth because mouse is doesn't work after suspend.
case $1 in
post)
sleep 1
btid=`rfkill --output ID,DEVICE| grep hci | sed -n -E 's/^ //;1p' | cut -d" " -f1`
rfkill block ${btid}
sleep 2
rfkill unblock ${btid}
;;
esac
редактировать1:---Добавлено sed в конвейер для удаления начального пробела, когда идентификаторы содержат менее 2 цифр (, т.е. <10)
редактировать2:---Поскольку обновление ядра (, которое я установил 11 -ноября -2020 ), также включало обновление прошивки, это решило проблему Зависание мыши после приостановки . не может использовать Wi-Fi, встроенный в тот же чип. [rtl8821ce]
См. информацию об изменении версий ядра и микропрограммы ниже.
Предыдущая загрузка ядра:
$ journalctl -b -3 |grep -i -e "Linux version \| bluetooth.* version"
Nov 04 10:24:52 lenou2004 kernel: Linux version 5.4.0-52-generic (buildd@lgw01-amd64-060) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #57-Ubuntu SMP Thu Oct 15 10:57:00 UTC 2020 (Ubuntu 5.4.0-52.57-generic 5.4.65)
Nov 04 10:24:53 lenou2004 kernel: Bluetooth: hci0: RTL: rom_version status=0 version=1
Nov 04 10:24:54 lenou2004 kernel: Bluetooth: hci0: RTL: fw version 0x826ca99e
Новая загрузка ядра:
$ journalctl -b -2 |grep -i -e "Linux version \| bluetooth.* version"
Nov 11 11:38:06 lenou2004 kernel: Linux version 5.4.0-53-generic (buildd@lcy01-amd64-007) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 (Ubuntu 5.4.0-53.59-generic 5.4.65)
Nov 11 11:38:08 lenou2004 kernel: Bluetooth: hci0: RTL: rom_version status=0 version=1
Nov 11 11:38:08 lenou2004 kernel: Bluetooth: hci0: RTL: fw version 0x829a21e4
Nov 11 11:44:32 lenou2004 kernel: Bluetooth: hci0: RTL: rom_version status=0 version=1
Nov 11 11:44:32 lenou2004 kernel: Bluetooth: hci0: RTL: fw version 0x829a21e4
редактировать3 ---Первоначальная проблема вернулась, я не отслеживал, когда она впервые возникла. Текущее ядро/прошивка:
journalctl -b |grep -i -e "Linux version \| bluetooth.* version"
Dec 12 11:36:25 lenou2004 kernel: Linux version 5.4.0-58-generic (buildd@lcy01-amd64-004) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 (Ubuntu 5.4.0-58.64-generic 5.4.73)
Dec 12 11:36:27 lenou2004 kernel: Bluetooth: hci0: RTL: rom_version status=0 version=1
Dec 12 11:36:27 lenou2004 kernel: Bluetooth: hci0: RTL: fw version 0x829a21e4