Debian (ubuntu) file problem after ftp

Hi,

I am using Debian (ubuntu). whenever I ftp file from Windows to Debian, the file is being shown as DOS while editing in vi. The control characters are not visible and I couldn't remove the '^M' character. So please help me how to make it Linux specific file to use it for Linux specific tasks.

Are you refering to transfering the file as ascii or binary?

When transfering text files, you should transfer as ascii. This will cause both client and server to do the appropriate thing for line terminators.

Binary files should be transferred as binary.

When you put a file, it will tell you which mode it is using as it transfers the file.

actually I am using "psftp.exe" (a putty tool) for ftp'ing files from Windows machine to Linux machine. So in the psftp we cannot specify ascii or binary mode, if we specify it, it will throw error. I don't know why.

psftp> ascii
psftp: unknown command "ascii"
psftp>

FYI, I am connecting to Linux machine using Cygwin X window system.

I dearly suggest that you use ftp from the command prompt.

open a terminal, then type man ftp, you can get it done in 5 min. If it does not work, at least it will generate an error that I can relate to it's results.

Actually I tried several times connecting Linux pc through ftp from DOS command prompt but could not succeed. It only happens when "sftp.exe" is used (I guess it is a secure ftp file). But I found the solution for my problem. A file has to be created (with some data) in the Linux environment and the windows file which is ftp'd should be concatenated to this file. So now we are able to see the "^M" control characters of the file in vi, as we have mixup of Linux based and DOS based newline characters in the same file and now it is possible to delete these DOS characters. But if the file contains data carriage return'd only by DOS newline character (ASCII-13), the vi editor is not showing those character and consider this file as "DOS" based file, a strange behaviour and I could not apply any method to replace this character using vi or sed or even with Perl. That is why I said to create a Linux based file with some data.

N.B: while a file containing only DOS newline character, then vi's :set list (or) od command (or) strings, nothing is useful.