Removing ^M character from text

J

John Victor

I have some text that I just realized is screwing everything up because
it contains the ^M character (control-M). I have tried using all kinds
of regexp expressions to find and remove it but it is evasive :)

What is the best way to find and remove the pesky ^M character from
text?

vic
 
S

Sebastian Hungerecker

John said:
What is the best way to find and remove the pesky ^M character from
text?

text.delete!("\r")
or if you prefer:
text.delete!("\C-M")

HTH,
Sebastian
 
M

Michael Monaghan

[Note: parts of this message were removed to make it a legal post.]

Hi John,
str = "123^M56"
newstr = str.sub(/^M/, '')

Note - for the substitution, you enter the '^M' character using Ctrl+v+m (-
or at least I do on Solaris.)

~mm
 
R

Robert Dober

I have some text that I just realized is screwing everything up because
it contains the ^M character (control-M). I have tried using all kinds
of regexp expressions to find and remove it but it is evasive :)

What is the best way to find and remove the pesky ^M character from
text?

vic
A simpler method, applicable if the c-m is coming from line ends

ruby -ne 'puts chomp' xxx > yyy

HTH
Robert


--=20
Ne baisse jamais la t=EAte, tu ne verrais plus les =E9toiles.

Robert Dober ;)
 
J

John Victor

Thanks alot everyone...I got it working.

I never realized how badly ^M was screwing me up all these years when
trying to match with regular expressions. I wish there was a way to see
all the end of the line characters, carriage returns and new line
without having to guess if they exist and using trial and error for
hours when doing regexp matches.

vic
 
T

Tim Hunter

John said:
Thanks alot everyone...I got it working.

I never realized how badly ^M was screwing me up all these years when
trying to match with regular expressions. I wish there was a way to see
all the end of the line characters, carriage returns and new line
without having to guess if they exist and using trial and error for
hours when doing regexp matches.

vic

On Linux, OS X, and other *ix systems, you can use cat -v. In Ruby,
String#inspect will show special characters escaped, so you can just use

p str

to see special characters. A newline shows up as "\n", for example.
 
J

John Victor

Thanks for the String#inspect, that really helps.
I am trying to do a regexp match on the first line only of this text, I
used the output from text.inspect:

"CPU utilization for five seconds: 4%/1%; one minute: 2%; five minutes:
2%\r\n"
"PID QTy PC Runtime (ms) Invoked uSecs Stacks TTY
Process\r\n"
"1 Cwe 40E8BAAC 80 1574 50 5560/6000 0 Chunk
Manager \r\n"
"2 Csp 41AD34D0 107060 19504749 5 2600/3000 0 Load Meter
\r\n"
"3 Mwe 41E1244C 8 8260 0 5136/6000 0 MPLS MIB
traps \r\n"
"4 Mwe 403D9860 1580 812729 1 5544/6000 0 DHCPD
Timer \r\n"
"5 Lst 40E9F268 211247688 17501448 12070 5616/6000 0 Check
heaps \r\n"

I thought it would be as simple as:

/^CPU\sutilization.*\r\n/

but this returns all the text I have shown above. Why is it that my
regexp doesn't stop at the "\n"?

thanks

vic
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top