Solved

Blank Line when taking a file from Unix to windows box

Posted on 2010-09-21
13
467 Views
Last Modified: 2012-05-10
Hi
I have file named test.msg which is generated inside a unix box.This file has some data which covers 5 lines as belo
{asdfdgdggdgfd
aghhjgjgjgjgjjjj
dgfhghghghghh
fgfgfgfhgfh45454
4545fgfgfgfgfgfgf}

If I open it in VI editor in UNIX box i see only 5 lines in the file.Now if transfer it to windows box via FTP in Binary Mode and then open the same file from an editor in windows box i.e using wordpad I can see an extra blank line i.e tota; 6 lines in the file.Even if i transfer from Unix in ASCII mode i see the same problem.
Now if you use the Textpad editor in windows I don't see it.I used another editor called Hexedit and I saw 0A hex value coming at end of the file.

I want to know what is the reason the extra blank line is coming when file is moved from Unix to Windows.If the file is Moved from Unix to Unix box also I dont see such problem

Regards,
Suhin
0
Comment
Question by:suhinrasheed
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 4
  • 3
  • +1
13 Comments
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 33728137
From wikipedia:

On Unix platforms, where C originated, the native newline sequence is ASCII LF (0x0A), so '\n' was simply defined to be that value.

See: http://en.wikipedia.org/wiki/Newline#Common_problems for details.
0
 

Author Comment

by:suhinrasheed
ID: 33728269
So are you coming to say that the source file in Unix is having the Line feed inside it already but it will never be seen using the VI editor
0
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 33728452
Basically it will be ignored by VI/unix, whereas it will be interpreted as a line feed on windows.
0
Use Case: Protecting a Hybrid Cloud Infrastructure

Microsoft Azure is rapidly becoming the norm in dynamic IT environments. This document describes the challenges that organizations face when protecting data in a hybrid cloud IT environment and presents a use case to demonstrate how Acronis Backup protects all data.

 
LVL 34

Expert Comment

by:Duncan Roe
ID: 33729955
Windows Ascii file lines end CrLf, rather than lf (\n) for Unix.
But that isn't the phenomenon you're seeing. Windows editors typically don't append the CrLf to a line until you start another line so the last line is left unterminated. If the last line does end CrLf (or just Lf) then editors show a blank line at the end of the file.
Notepad will display a file with bare Lf line endings as a single line with little square blobs for the Lf characters. Wordpad will display such a file as you would hope.
0
 
LVL 34

Expert Comment

by:Duncan Roe
ID: 33729961
I meant Lf (\n) - just a typo
0
 

Author Comment

by:suhinrasheed
ID: 33730929
So what is the method I can avoid the Blank line in the binary format file I move from Unix to windows box
0
 
LVL 1

Expert Comment

by:sage444
ID: 33732645
hello
just try to trim last byte from file before copy to windows box

head -c <sizeOfFile-1> filename > newfilename
0
 
LVL 34

Expert Comment

by:Duncan Roe
ID: 33733002
Or (easier)

head -c -1 filename > newfilename
0
 

Author Comment

by:suhinrasheed
ID: 33740595
infact we dont want to touch the file in source box .As per the policy applicable to this file ..it has to be moved out of Unix once it is generated there to windows just like you pull a book from your bag and keep it in table...We are not even allowed to open the file before transfer in an actual scenario
0
 
LVL 1

Expert Comment

by:sage444
ID: 33740912
Can you try this solution only one time to know right this way or not.
And if i'm right we will know what to do on the windows side
0
 
LVL 34

Accepted Solution

by:
Duncan Roe earned 500 total points
ID: 33742768
The file in Windows will be the same binary file (unless you ftp it using ASCII mode) as it was in Linux or Unix - it's just that some editors display it differently. A program reading it with fgets() calls will see the same data under Linux / Unix or Windows.
Do you really have a problem at all?
0
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 33746701
I assume you have to use binary and you know this, but in case it helps someone, if you use text mode it will remove it.
0
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 33746722
Your other solution is removing it using a program or script of which Duncan has a good solution there.  There's tons of others if you search for "cr lf unix windows".
0

Featured Post

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

FreeBSD on EC2 FreeBSD (https://www.freebsd.org) is a robust Unix-like operating system that has been around for many years. FreeBSD is available on Amazon EC2 through Amazon Machine Images (AMIs) provided by FreeBSD developer and security office…
It’s 2016. Password authentication should be dead — or at least close to dying. But, unfortunately, it has not traversed Quagga stage yet. Using password authentication is like laundering hotel guest linens with a washboard — it’s Passé.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question