Visit Our UNIX and Linux User Community


sed to replace <cr><cr><cr> in a line with <cr>


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed to replace <cr><cr><cr> in a line with <cr>
# 1  
Old 06-09-2011
sed to replace <cr><cr><cr> in a line with <cr>

Hi,
Please help me with the sed command for the following scenario:

I've in abc.txt,

asdasdada<cr>aasdsad<cr><cr>asdasdfsdfs<cr><cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr><cr>


I want a sed command to do

asdasdada<cr>aasdsad<cr>asdasdfsdfs<cr>asdsada<cr>adasd<cr>daasdaasd<cr>


please help me
# 2  
Old 06-09-2011
Assuming your file does not contain any '@'
otherwise, choose another character that does not already appear in your file (#,, ...)

Code:
sed 's/<cr>/@/g;s/@@*/@/g;s/@/<cr>/g' infile

# 3  
Old 06-09-2011
something like this:

Code:
 
sed 's/<cr>[<cr>]*/<cr>/g' input_file

# 4  
Old 06-09-2011
Thanks for the reply.
If possible, could you please let me know what is wrong with

sed "s/<cr>+/<cr>/g" infile.txt

or

sed "s/\(<cr>\)+/<cr>/g" infile.txt

Thanks in advance.
# 5  
Old 06-09-2011
Please go through this link. I'm sure it will better explain than me:

Sed - An Introduction and Tutorial
# 6  
Old 06-09-2011
Caveat : for some uncommon character, you may need to force the bracket enclosing to be handled correctly :

Code:
# echo "asdasdada<cr>aasdsad<cr><cr>asdasdfsdfs<cr><cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr><cr>" | sed 's/<cr>//g;s/*//g;s//<cr>/g'
asdasdada<cr>aasdsad<cr>asdasdfsdfs<cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr>

---> Here the has not been handled correctly

Whereas in the 2 following case, it is handled correctly :
Code:
# echo "asdasdada<cr>aasdsad<cr><cr>asdasdfsdfs<cr><cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr><cr>" | sed 's/<cr>//g;s/[]*//g;s//<cr>/g'
asdasdada<cr>aasdsad<cr>asdasdfsdfs<cr>asdsada<cr>adasd<cr>daasdaasd<cr>

Code:
# echo "asdasdada<cr>aasdsad<cr><cr>asdasdfsdfs<cr><cr><cr>asdsada<cr>adasd<cr>daasdaasd<cr><cr><cr>" | sed 's/<cr>//g;s/[..]*//g;s//<cr>/g'
asdasdada<cr>aasdsad<cr>asdasdfsdfs<cr>asdsada<cr>adasd<cr>daasdaasd<cr>

---------- Post updated at 02:00 PM ---------- Previous update was at 01:53 PM ----------

Quote:
Originally Posted by skpvalvekar
Thanks for the reply.
If possible, could you please let me know what is wrong with

sed "s/<cr>+/<cr>/g" infile.txt

or

sed "s/\(<cr>\)+/<cr>/g" infile.txt

Thanks in advance.
+ or * refer to the preceding character or [character list] they do NOT refer to the preceeding \(strings\)

---------- Post updated at 02:09 PM ---------- Previous update was at 02:00 PM ----------

Quote:
Originally Posted by panyam
something like this:

Code:
 
sed 's/<cr>[<cr>]*/<cr>/g' input_file

@Panyam
Your code is dangerous and may lead to unexpected loss, consider :

Code:
# echo "I<cr><cr>like<cr><cr>roasted <cr><cr>apple<cr><cr><cr>crumble<cr>."  | sed 's/<cr>[<cr>]*/<cr>/g'
I<cr>like<cr>oasted <cr>apple<cr>umble<cr>.

Where did go the 'r' of 'roasted' and 'cr' of 'crumble' ?????

Smilie

Last edited by ctsgnb; 06-09-2011 at 10:14 AM..
# 7  
Old 06-09-2011
Quote:
Originally Posted by ctsgnb
@Panyam
Your code is dangerous and may lead to unexpected loss, consider :

Code:
# echo "I<cr><cr>like<cr><cr>roasted <cr><cr>apple<cr><cr><cr>crumble<cr>."  | sed 's/<cr>[<cr>]*/<cr>/g'
I<cr>like<cr>oasted <cr>apple<cr>umble<cr>.

Where did go the 'r' of 'roasted' and 'cr' of 'crumble' ?????

Smilie
I believe below one would help to resolve
Code:
sed 's/\(<cr>\)\1*/<CR>/g' inputfile

These 2 Users Gave Thanks to michaelrozar17 For This Post:

Previous Thread | Next Thread
Test Your Knowledge in Computers #449
Difficulty: Medium
Linux Mint was originally based on Kubuntu.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Replace values in script reading line by line using sed

Hi all, Let's say I have a script calling for the two variables PA_VALUE and PB_VALUE. for pa in PA_VALUE blah blah do for pb in PB_VALUE blah blah do I have a text file with two columns of values for PA and PB. 14.5 16.7 7.8 9.5 5.6 3.6 etc etc I would like to read this... (7 Replies)
Discussion started by: crimsonengineer
7 Replies

2. Shell Programming and Scripting

sed command to replace a line in a file using line number from the output of a pipe.

Sed command to replace a line in a file using line number from the output of a pipe. Is it possible to replace a whole line piped from someother command into a file at paritcular line... here is some basic execution flow.. the line number is 412 lineNo=412 Now i have a line... (1 Reply)
Discussion started by: vivek d r
1 Replies

3. Shell Programming and Scripting

Multiple line search, replace second line, using awk or sed

All, I appreciate any help you can offer here as this is well beyond my grasp of awk/sed... I have an input file similar to: &LOG &LOG Part: "@DB/TC10000021855/--F" &LOG &LOG &LOG Part: "@DB/TC10000021852/--F" &LOG Cloning_Action: RETAIN &LOG Part: "@DB/TCCP000010713/--A" &LOG &LOG... (5 Replies)
Discussion started by: KarmaPoliceT2
5 Replies

4. Shell Programming and Scripting

sed command to replace a line at a specific line number with some other line

my requirement is, consider a file output cat output blah sdjfhjkd jsdfhjksdh sdfs 23423 sdfsdf sdf"sdfsdf"sdfsdf"""""dsf hellow there this doesnt look good et cetc etc etcetera i want to replace a line of line number 4 ("this doesnt look good") with some other line ... (3 Replies)
Discussion started by: vivek d r
3 Replies

5. Shell Programming and Scripting

Replace line with sed on OS X

So, I want to, in a script, do an in-line replacement of a line in a file. Piece of cake in Linux with GNU sed. With OSX and BSD sed, not so much. I've been Googling, but nothing is really helping... either an answer is for a use case different enough from what I want to do, or it's something... (10 Replies)
Discussion started by: jnojr
10 Replies

6. Shell Programming and Scripting

I need to know how to replace a line after a pattern match with an empty line using SED

Hi How Are you? I am doing fine! I need to go now? I will see you tomorrow! Basically I need to replace the entire line containing "doing" with a blank line: I need to the following output: Hi How Are you? I need to go now? I will see you tomorrow! Thanks in advance.... (1 Reply)
Discussion started by: sags007_99
1 Replies

7. Shell Programming and Scripting

sed to do replace on line above

Hello, I need to use sed to find a certain string and then do a replace on the line above. For example if I had the following text: AAAAAAA BBBBBBB CCCCCCC DDDDDD I would like to find CCCCCCC, but I would like the replace to be carried out on BBBBBBB. I have done some... (11 Replies)
Discussion started by: toptiger
11 Replies

8. Shell Programming and Scripting

sed to replace a line with modified line in same file

i have few lines in a file... i am reading them in a while loop so a particular line is held is $line1.. consider a modified line is held in $line2.... i want to replace $line1 with $line2 in the same file... how to do it..? i have come up till the below code sed "s/$line1/$line2/g" tmpfile.sql... (5 Replies)
Discussion started by: vivek d r
5 Replies

9. Shell Programming and Scripting

How to replace one line with three in sed

Hi, I have a problem. I want to use SED to replace one line with three It looks like: PARAM='first_line,second_line,third_line' And in file: blablabla blablabla PARAM blablabla blablabla blablabla All I want is to change this into: blablabla blablabla first_line second_line... (6 Replies)
Discussion started by: ch0sen
6 Replies

10. Shell Programming and Scripting

sed - Replace Line which contains the Pattern match with a new line

I need to replace the line containing "STAGE_DB" with the line "STAGE_DB $DB # database that contains the table being loaded ($workingDB)" Here $DB is passed during the runtime. How can I do this? Thanks, Kousikan (2 Replies)
Discussion started by: kousikan
2 Replies

Featured Tech Videos