В текстовом файле на FreeBSD заменил точку на запятую программой sed, просмотраиваю результать все отлично, везде запятые, сливаю файл на Windows в файле точки7!!!
Вот черт, а если просматриваю vi то одни точки и стоит знат ^M блин чего делать ?
>Вот черт, а если просматриваю vi то одни точки и стоит знат
>^M блин чего делать ?
cat file0|col -p >file1 - удалит виндовые ^M
>Вот черт, а если просматриваю 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))