как удалить ctrl F в файле unix

При редактировании файла unix я получаю данные, как показано ниже в редакторе vi.

MGW:^FVMG107 MGW:^FVMG113 MGW:^FVMG108 MGW:^FVMG103 

где в приведенных выше данных ^F не отображается в команде cat . Я тоже пробовал dos2unix & sed , но он все еще существует. Как я могу удалить ^F

4 Solutions collect form web for “как удалить ctrl F в файле unix”

^F – это vim, сообщающий вам, что там есть непечатаемый символ 0x06 (F – шестая буква алфавита, они варьируются: '^ @', '^ A', '^ B' … '^ Y', '^ Z'. '^ [', '^ \', '^]', '^^', '^ _')

У меня не было проблем с его графическим отображением в vim, nano, joe … но если вы предпочитаете подход к командной строке, зная, что это символ 0x06, вы можете использовать sed -i 's/\x06//g' filename чтобы удалить его.

PS: Я боюсь, что решение по удалению ^ F на cat -v будет работать только в том случае, если в вашем файле нет других непечатаемых символов, которые будут искажены.

Как говорит Анхель, ^F в vi или выход cat -v обозначает символ 06. Другой способ избавиться от этих персонажей –

 tr -d "\06" < oldfile > newfile 

Изменить: Как упоминал Ангел , вы не должны использовать это решение, так как оно может привести к нежелательным изменениям.

Его решение (hex ( ^F ) == \x06 ):

 sed -i 's/\x06//g' filename 

Мое (inproper) решение:

 cat -v oldfile | sed 's/\^F//g' > newfile 

должен это сделать.

Учитывая, что вы работаете с файлом в vim, вы можете исправить это в vi / vim. Вы можете ввести этот символ с помощью ctrl-v, затем ctrl-. Для этого это crtl-v, за которым следует ctrl-f.

Таким образом, вы можете использовать простой поиск / замену:

 :%s/^F// 

Это будет работать на всех строках (%) и заменить (s), первый экземпляр ^ F, ничего, эффективно удаляя его.

Если вы хотите видеть скрытые символы в файлах, вместо cat, попробуйте использовать od -c:

 od -c <file name> 

например, но помещая в файл a ^ F и два конца строки:

 alex@Smiley:/tmp|⇒ cat test alex@Smiley:/tmp|⇒ od -c test 0000000 006 \n \n 0000003 

При этом выводится список всех экранированных символов, включая вкладки, окончания строк и т. Д.

Если вы хотите использовать sed, вы можете использовать тот же ctrl-V, crtl-trick прямо в командной строке. Таким образом, вам не нужно запоминать перевод.

  • Удалить конечные запятые в строке
  • Sed - Как я могу вставить строку после определенной строки И какой-то символ?
  • Замените все пробелы в начале каждой строки вкладкой
  • команда sed remove - включить верхний / нижний регистр
  • Почему sed дает мне эту ошибку: ... неизвестная команда: `^ '
  • sed inline editing не работает для нескольких операторов sed
  • Оптимизация команды sed или создание новой
  • Замена многострочных последовательных тегов одной строкой с использованием sed и игнорирование пробелов
  • Заменить соответствие пути файла содержимым файла на пути с помощью sed
  • sed - как заменить пробел или знак подчеркивания
  • Использование sed для удаления строки из списка файлов не выполняется
  • Linux и Unix - лучшая ОС в мире.