Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
365 views
in Technique[技术] by (71.8m points)

c - What is newline character -- ' '

This is a very basic concept, but something I have never been able to articulate that well. and I would like to try to spell it and see where I go wrong.

If I have to, how would I define a "newline character". say if I create a new file in unix(or windows), then does the file store the "end of line" information by inserting a special character in the file called as "new line character". If so, what is its ascii value? I remember that in C programs, I have checked for the read character against the value ' ' . And why this confusing 2 characters to represent end of line characters..

bash$ cat states
California
Massachusetts
Arizona

Say, I want to insert one line space between the lines and want an output of the form: Desired output:

California

Massachusetts

Arizona

bash$sed -e 's/
/

/g' states  does not work.

Why can't I treat "new line character" here just as I would treat any other character and run something like above command. (I understand that one might say that this is a matter of syntax of sed, but could one please explain the intuition behind not allowing this, so that I can get rid of my confusion.

Similarly, inside the vim editor, I can not use :%s/ / /g . Why so?

Do I need to further escape by using a backslash in sed and from within vim?.

Thanks,

Jagrati

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

NewLine ( ) is 10 (0xA) and CarriageReturn ( ) is 13 (0xD).

Different operating systems picked different end of line representations for files. Windows uses CRLF ( ). Unix uses LF ( ). Older Mac OS versions use CR ( ), but OS X switched to the Unix character.

Here is a relatively useful FAQ.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...