как удалить 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?
  • Как избежать того, что шаблон вставки с использованием sed применяется к середине строки?
  • Как я могу заставить команду sed выполнять постоянные изменения в файле?
  • Замена шаблона переменной
  • Можно ли передавать аргументы в сценарий sed?
  • Хотите найти две строки подряд с не менее n символами
  • SED: вставить текст после последней строки?
  • удалите только первую пустую строку sed
  • как сопоставить несколько шаблонов и изменить одну часть с sed
  • Ошибка при использовании sed
  • Linux и Unix - лучшая ОС в мире.