Как я могу удалить из текстового файла эти специальные символы

Запуск Oracle VB Выберите свою виртуальную машину в настройках LHS -> Дисплей -> вкладка «Видео», «Включить функции:» и установите флажок «Включить 3D-ускорение». Нажмите «OK»

1
задан 22 December 2016 в 18:17

2 ответа

Вы можете сделать это в sed, но вам нужно использовать escape ANSI в bash, чтобы дать ему символ:

sed -i 's/'$'\u001b''//g' file

И здесь он находится в действии:

ANSI escape

Альтернативно, в perl:

perl -i -pe 's/'$'\u001b''//g' file

И с tr:

tr -d $'\u001b' < file > newfile 
2
ответ дан 23 May 2018 в 03:06
  • 1
    Он не удаляет escape-код ANSI внутри файла .txt, но вывод с кошкой хорош. Я хочу, чтобы это было удалено из .txt-файла. – Insanebench420 22 December 2016 в 18:29
  • 2
    @ Insanebench420 он должен. И это происходит в моих тестах. Если это не так, это может быть неправильный характер. Попробуйте создать файл с помощью printf ':%s:\n' $'\u001b' > file. Это создаст файл с плохим символом между двумя :. Затем попробуйте команду, которую я дал, и посмотрим, удалит ли ее. – terdon♦ 22 December 2016 в 18:42
  • 3
    Я попробовал это, и да, если я сделаю один: u0001b: он удалит его, но ... если я сделаю больше, то в одной строке он не удалит его. – Insanebench420 22 December 2016 в 18:50
  • 4
    Вместо этого он удалит только первый и оставит остальные. – Insanebench420 22 December 2016 в 18:50
  • 5
    @ Insanebench420 ах, да, если у вас может быть больше одного, вам нужно g. См. Обновленный ответ. – terdon♦ 22 December 2016 в 18:54

Если я правильно понимаю, похоже, вы хотите удалить escape-последовательности ansi, присутствующие в вашем тексте. Попробуйте

ansifilter file

Update

К моему удивлению, нет пакета ansifilter для ubuntu! (есть для fedora, arch, brew и т. д.)

Тем не менее мы можем установить из TGZ или из других пакетов или wget rpm, применить иностранец для сборки пакета deb и установить его.

0
ответ дан 23 May 2018 в 03:06

Другие вопросы по тегам:

Похожие вопросы: