user1452759
user1452759

Reputation: 9450

How to remove ^M from a text file and replace it with the next line

So suppose I have a text file of the following contents:

Hello what is up. ^M
^M
What are you doing?

I want to remove the ^M and replace it with the line that follows. So my output would look like:

Hello what is up. What are you doing?

How do I do the above in Python? Or if there's any way to do this with unix commands then please let me know.

Upvotes: 7

Views: 40127

Answers (3)

Tim Hoffman
Tim Hoffman

Reputation: 12986

''.join(somestring.split(r'\r'))

or

somestring.replace(r'\r','')

This assumes you have carriage return characters in your string, and not the literal "^M". If it is the literal string "^M" then substiture r'\r' with "^M"

If you want the newlines gone then use r'\r\n'

This is very basic string manipulation in python and it is probably worth looking at some basic tutorials http://mihirknows.blogspot.com.au/2008/05/string-manipulation-in-python.html

And as the first commenter said its always helpful to give some indication of what you have tried so far, and what you don't understand about the problem, rather than asking for an straight answer.

Upvotes: 10

Hamoudaq
Hamoudaq

Reputation: 1498

use replace

x='Hello what is up. ^M\
^M\
What are you doing?'

print x.replace('^M','') # the second parameter  insert what you want replace it with 

Upvotes: 0

FLOZz
FLOZz

Reputation: 909

Try:

>>> mystring = mystring.replace("\r", "").replace("\n", "")

(where "mystring" contain your text)

Upvotes: 6

Related Questions