Linux : RHEL5 Tikanga Версия : 2.6.18-402.el5 (per uname -a)
Я создаю файл, отображая строкуиз исходного файла Windows (который содержит некоторое значение Version=x.x.x
) и помещает его в новый файл aa.txt
.Это прекрасно работает для поиска и поиска части.
Делать что-то вроде echo -n "AA "; echo "$(grep "Version=[1-9]" /some/mounted/loc/windows/sourcefile.txt) -" >> aa.txt
.
- Я должен использовать
echo -n
для AA
отдельно, т. Е. Я не могу объединиться echo AA
с echo version part
с последней командой эха.
Такрезультирующий файл aa.txt
визуально выглядит следующим образом: Теперь, если я cat
это, он не печатает первую строку, только последний -
символ.
Если я использую dos2unix
(который фактически работает для удаления только символа окончания строки и преобразует файл формата Windows в файл формата символа окончания строки Linux), он все равно не работает, так как ^M
в первой строке не являетсяпоследний символ в строке. PS : Если вы заметили, цвет первой ^M
отличается от цвета второй строки, которую я добавил вручную, набрав.
Запуск od -cab aa.txt
(восьмеричный дамп) для этого файла показывает, что:
для первых ^M
, символы \r
, cr sp
и 015 040
(то есть возврат каретки и невидимый пробел).
для второй строки, ^M
, показывает мне нормальные значения как ^ M
, ^ M
и 136 115
(как я вручную набрал ^
и M
во второй строке это ожидалось).
Вопрос: 1. Используя tr -d '\r' < aa.txt > new.aa.txt
, я могу решить эту проблему, но какой шаблон я могу использовать в vi
или vim
для удаления этого символа в командном режиме.Попробовал :%s/^M//g
, но шаблон не уловил.