Каждая строка файла содержит строку
^M 1
дважды. Таким образом,
<carriage-return><tab>1
^M^I1
\r\t1
(Это - три различных представления тех же управляющих символов),
Когда это отправляется непосредственно на Ваш терминал, как cat
сделает, терминал интерпретирует это как инструкцию попятиться к началу строки, отодвинуться 8 символов и отобразить a 1
.
Когда Вы cat
исходный файл, это дополнительное 1
обнаруживается сверху существующего 1
, таким образом, Вы не заметили его.
После изменения префикса от scaffold
кому: scaffold_
, дополнительное 1
теперь обнаруживается по _
, таким образом, теперь Вы заметили его.
Когда Вы открываете файл в vi
или emacs
, редактор не интерпретирует <carriage-return>
упорядочьте тот же путь, но вместо этого отображает его.
Я предполагаю, что Вы не хотите <carriage-return><tab>1
строки в Вашем файле. Можно удалить их с sed
:
sed -i 's/\r\t1//g' myfile
Относительно Ваш "Я не могу доверять своим глазам" комментарий - начиная с изменения управляющих последовательностей, как вещи отображены, да, они могут сбивать с толку. Один способ просмотреть вещи более ясно с cat
-v
и -T
опции:
-v, --show-nonprinting use ^ and M- notation, except for LFD and TAB
-T, --show-tabs display TAB characters as ^I
-t equivalent to -vT
Например:
$ cat myfile
scaffold1test
$ cat -t myfile
scaffold_hello^M^I1
Это, покончили yumdb set installonly keep kernel-2.6.32-279.el6.x86_64
команда.
По умолчанию, yum
разбрасывает три версии ядра и имеет гарантии против удаления рабочего ядра (и несколько других критических компонентов системы).