Removing carriage return/line feeds on multiple lines


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Removing carriage return/line feeds on multiple lines
# 1  
Old 07-06-2012
Removing carriage return/line feeds on multiple lines

I would like to remove carriage returns/line feeds in a text file, but in a specific cadence:
  • Read first line (Header Line 1), remove cr/lf at the end (replace it with a space ideally);
  • Read the next line (Line of Text 2), leave the cr/lf intact;
  • Read the next line, remove the cr/lf;
  • Read the next line (Header Line 2), remove cr/lf at the end (replace it with a space);
  • Read the next line (Line of Text 2), leave the cr/lf intact…

Here is my input data, in red of the cr/lf I would like deleted

Code:
Header Line 1 <cr/lf> ( replace with a space)
Line of Text 1<cr/lf>
<cr/lf> 
Header Line 2 <cr/lf> (replace with a space)
Line of Text 2<cr/lf>
<cr/lf>

What I would like to output

Header Line 1 Line of Text 1
Header Line 2 Line of Text 2

Being new to sed, I have managed to remove all the cr/lf’s but I just end up with a long string of text. I would live to preserve the cr/lfs that separate Header Line 1 Line of Text 1 from Header Line 2 Line of Text 2.

Thanks for your help!

Last edited by Scrutinizer; 07-06-2012 at 11:17 AM.. Reason: code tags
# 2  
Old 07-06-2012
Something on these lines?

Code:
sed '/^Header/{N;N;s/\r//g;s/\n$//;s/\n/ /}' inputfile

# 3  
Old 07-06-2012
Try:
Code:
tr -d '\r' < infile | awk '{$1=$1}1' RS=


---
note: \r in sed regex is GNU sed only
# 4  
Old 07-06-2012
Elixir - thanks, but my 'Header' line is actually a date and time field, does that make a difference?

---------- Post updated at 09:09 AM ---------- Previous update was at 09:08 AM ----------

Scrutinizer, thanks - tried the script but the outfile came back with no changes.
# 5  
Old 07-06-2012
What is your OS and version?
# 6  
Old 07-06-2012
Fedora release 16 (Verne), bash shell
# 7  
Old 07-06-2012
Quote:
Originally Posted by tomr2012
Elixir - thanks, but my 'Header' line is actually a date and time field, does that make a difference?
Of course it matters. You'll have to replace ^Header using a regex/string specific to your case.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Removing carriage returns from multiple lines in multiple files of different number of columns

Hello Gurus, I have a multiple pipe separated files which have records going over multiple Lines. End of line separator is \n and records going over multiple lines have <CR> as separator. below is example from one file. 1|ABC DEF|100|10 2|PQ RS T|200|20 3| UVWXYZ|300|30 4| GHIJKL|400|40... (7 Replies)
Discussion started by: dJHa
7 Replies

2. Shell Programming and Scripting

Bash - multiple line carriage return

Hello! I have one strange question - let's say I have a long, multiple-line string displayed on the terminal using echo, and I would like to make a carriage return to the beginning of this string, no to the beginning of the last line - is something like that possible? I would like to be able to... (1 Reply)
Discussion started by: xqwzts
1 Replies

3. Shell Programming and Scripting

Removing Carriage return in a file after particular string

Hi All, I want to remove carriage return in a file using some unix command without writing a script my file is as follows abc1 abc2 abc3 abc4 abc5 bac6 abc1 abc2 abc3 abc4 abc5 bac6 I want the output as follows: abc1 abc2 abc3 abc4 abc5 bac6 abc1 abc2 abc3 abc4 abc5 bac6 , Please... (7 Replies)
Discussion started by: manish8484
7 Replies

4. Shell Programming and Scripting

Removing Carriage return and merging data

Hi, I am trying to remove the carriage return on the record which starts with ADD, MODIFY, or DELETE keyword as the first value in the record. If the records does not start with anyone of these keywords then combine the records with the previous record (line). Input File name xyz.txt... (6 Replies)
Discussion started by: naveed
6 Replies

5. UNIX for Dummies Questions & Answers

removing spaces after carriage return

I have a file that I have to place a carriage return at the end of each line for another program to process it. I also need to remove all spaces after the carriage return. I searched the forums and found this command, but it removes all spaces: sed "s/*//g" ic527.txt > ic527.new The... (9 Replies)
Discussion started by: jyoung
9 Replies

6. Shell Programming and Scripting

Removing Carriage Return and or line feed from a file

Hello I'm trying to write a shell script which can remove a carriage return and/or line feed from a file, so the resulting file all ends up on one line. So, I begin with a file like this text in file!<CR> line two!<CR> line three!<CR> END!<CR> And I want to end up with a file... (1 Reply)
Discussion started by: tbone231
1 Replies

7. Shell Programming and Scripting

sed removing carriage return and newline

Hi, I'm not very familiar with unix shell. I want to replace the combination of two carriage returns and one newline with one carriage return and one newline. I think the best way to do this is to use sed. I tried something like this: sed -e "s#\#\#g" file.txt but it doesn't work. Thanx... (2 Replies)
Discussion started by: mored
2 Replies

8. Shell Programming and Scripting

Removing Carriage return to create one record

I have a file with multiple records in it and want to create a single record by removing all the carriage returns, is there a sed command or another command that will easily allow this to happen. current layout 813209A 813273C 812272B expected result 813209A813273C812272B previously I... (3 Replies)
Discussion started by: r1500
3 Replies

9. Shell Programming and Scripting

carriage return/line feeds

Hello, I have a file that has got carriage returns in it and I want to take them out. Anyone know how I can do this in a ksh? thanks (4 Replies)
Discussion started by: pitstop
4 Replies

10. UNIX for Dummies Questions & Answers

Removing carriage return characters from file

Hello there, I need to remove carriage return characters (\n and \r) from any input file specified. This is what I am doing right now: - dumping the file to octal format using the command 'od -c file_name - removing and \s and \n characters using sed commands What I need to do now is... (3 Replies)
Discussion started by: b1saini
3 Replies
Login or Register to Ask a Question