Продолжая последний ответ, который использует tr и :cntrl :, можем ли мы сделать
sed "/^[[:cntrl:]]/d" output.txt
Мне кажется, это работает, потому что все строки, сгенерированные vi, начинаются с управляющего символа. Бывает также удаление пустых строк и строк, начинающихся с табуляции, хотя это работает для того, что я делаю. Возможно, есть способ сопоставить любой управляющий символ, кроме \n \m \t.
Может быть, мы можем найти конкретный управляющий символ, и похоже, что все ненужные строки, сгенерированные vi, начинаются с чего-то похожего на ^[. hexdump говорит мне, что первый символ — 1b, так что это тоже работает
sed "/^\x1b/d" output.txt
Это похоже на ответ, размещенный выше, но он не работает должным образом, потому что после выполнения команды некоторые ненужные символы уже добавляются в командную строку, как если бы пользователь ввел их.
Вы можете исправить установку Python, не исправляя lsb_release
. Ваша установка Python требует переустановки других пакетов Python; не менее
sudo apt install --reinstall libpython3.6-minimal
и, возможно, больше. Чтобы переустановить все пакеты, запустите
sudo apt install --reinstall libpython3.6{,-minimal,-stdlib} python3.6{,-minimal}
После этого вы обнаружите, что lsb_release
работает нормально.