У меня есть файл со специальными персонажами, которые были созданы во время копирования с терминала.
Теперь я хотел бы удалить их. Я попробовал grep и sed, но не работал, возможно, я делаю его неправильно.
Специальным символом является ESC в черном квадрате, не может скопировать его, но если я делаю, он превращается в поле с числами внутри:
числа в том поле:
00
1B
Python может сделать задание. Процесс здесь прост, мы читаем во всех строках в список, одновременно заменение символа ESC UTF (который является \u001b
), и затем распечатывает строки снова, но без символа ESC. Эти < input.txt
отправляет старый текст в команду Python, и > new_file.txt
отправляет текст в новый файл.
Сценарий:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
lines=[l.strip().replace(u"\u001b","") for l in sys.stdin]
print("\n".join(lines))
Сохраняют его как delete_escape.py
, делают его исполняемым файлом с chmod +x ./delete_escape.py
и называют его как так:
./delete_escape.py < input.txt > output.txt
Результаты:
Можно сделать это в sed
, но необходимо использовать Escape ANSI в ударе, чтобы дать ему символ:
sed -i 's/' И здесь это в действии:
, С другой стороны, в жемчуге:
perl -i -pe 's/' И с tr
:
tr -d \u001b' < file > newfile
\u001b''//g' file
И с tr
:
tr -d \u001b' < file > newfile
\u001b''//g' file
И здесь это в действии:
, С другой стороны, в жемчуге:
perl -i -pe 's/' И с tr
:
tr -d \u001b' < file > newfile
\u001b''//g' file
И с tr
:
tr -d \u001b' < file > newfile
Если я понимаю правильно, что похоже, что Вы хотите удалить ansi escape-последовательности, существующие в Вашем тексте. Попробовать
ansifilter file
Обновление
К моему удивлению существует нет ansifilter
пакет для человечности! (существует для мягкой фетровой шляпы, дуги, варева, и т.д.),
Тем не менее, мы можем установить от TGZ или от других пакетов или wget об/мин, подать заявку чуждый, чтобы создать deb пакет и установить его.