>Вот черт, а если просматриваю vi то одни точки и стоит знат
>^M блин чего делать ?
мб не тот символ и не на то заменял или код символа был неверно набран?
Потому как имеем точку и запятую в первой половине ASCII:
[unix1]~ > uname -r
4.8-RELEASE
[unix1]~ > echo $TERM
xterm
[unix1]~ > echo $LANG
ru_RU.KOI8-R
[unix1]~ > echo ",,," | recode -kw - -
,,,
[unix1]~ >
Что у тебя могло произойти: например ты зашел на freebsd-server из под
неверно настроенной в Windows терминалки.
В таких случаях лучше в VI сделать скрипт замены и затем его запустить.
Пример:
[unix1]~ > cat prob
........................................
........................................
[unix1]~ > sed -e "s/./,/g" prob
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
[unix1]~ >
допустим нам нужно было сделать правки в файле который был создан
в MSDOS/Windows и в нем конец строки интерпретируется как два символа:
0xd 0xa (\r\n)
[unix1]~ > cat prob
........................................
<skipped>
........................................
[unix1]~ >
проще всего увидеть используя hd (man hd):
[unix1]~ > hd -c prob
...
<skip>
000001f0 2e 2e 2e 2e 2e 2e 0d 0a 2e 2e 2e 2e 2e 2e 2e 2e |................|
00001f0 . . . . . . \r \n . . . . . . . .
00000200 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e |................|
0000200 . . . . . . . . . . . . . . . .
*
00000220 0d 0a |..|
0000220 \r \n
0000222
[unix1]~ >
хорошо видно что вместо одного символа linefeed(\n) у нас еще и масадовский \r имеется, избавляемся:
[unix1]~ > sed -e "s/^M//g" prob
как нам набрать в командной строке или в VI символ \r, для bash и vi -
очень просто: ctrl-v ctrl-m (ctrl-v - войти в режим ввода спец.символов,
ctrl-m - ввести символ \r(enter))