sed problem


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers sed problem
# 1  
Old 12-12-2005
sed problem

Hi All,


I am having a text file say xyz which I convert into a file such that all the lines in that xyz file should have a “ on both the side of each line and \r and \n


xyz which need to be converted:
=============================
*%EFILocal [pdl_postscript:postscript]
*%EFILocal [pdl_pcl:pcl]

*%EFILocal [pdl_pjl:pjl]
*%EFILocal [pdl_pdf:pdf]
*%EFILocal [pdl_passthru:passthru]
*%EFILocal [pdl_text:text]

================================

Converted file: say abc
============================
"*%EFILocal [pdl_postscript:postscript]\r\n"
"*%EFILocal [pdl_pcl:pcl]\r\n"
“\r\n”
"*%EFILocal [pdl_pjl:pjl]\r\n"
"*%EFILocal [pdl_pdf:pdf]\r\n"
"*%EFILocal [pdl_passthru:passthru]\r\n"
"*%EFILocal [pdl_text:text]\r\n"
“\r\n”
"*%EFILocal [pdl_tiff:tiff]\r\n"
"*%EFILocal [pdl_xwd:xwd]\r\n"

I use the sed utility and did the following:

cat xyz | sed -e 's/\(.*\)$/"\1\\r\\n"/' | tr -d "\r" > abc

But it is not helping for all the lines. For some lien it is working and for some line it is not working at all. For some line it is not feeding " in the begining of the line.

Regards
Gauri Agrawal

Last edited by Perderabo; 12-12-2005 at 06:55 AM.. Reason: Disable smilies for readability
# 2  
Old 12-12-2005
Your command should work. Can you give some cases in which your command is not working? Add the anchor symbol and try again

Code:
sed -e 's/^\(.*\)$/"\1\\r\\n"/' xyz | tr -d "\r"

# 3  
Old 12-12-2005
thanks for the quick reply

actuly the following the line
*%EFILocal [invisible_yes:S\x92]

but when copy past only this line put in anothe file and then run sed, it works..

Can u please tell me how to add the anchor symbol. I guess it might be the problem

Thanks & Regards
Gauri Agrawal
# 4  
Old 12-12-2005
Quote:
Originally Posted by mona
Code:
sed -e 's/^\(.*\)$/"\1\\r\\n"/' xyz | tr -d "\r"

Since you need to match everything, you can use the & construct.

Code:
sed -e 's_.*_"&\\r\\n"_g' xyz

# 5  
Old 12-12-2005
Quote:
Originally Posted by vino
Since you need to match everything, you can use the & construct.

Code:
sed -e 's_.*_"&\\r\\n"_g' xyz

Hi Gauri,

Could you please try Vino's solution. "^" is the anchor symbol which matches the pattern in the beginning of the line.

Code:
sed -e 's_.*_"&\\r\\n"_g' xyz

I don't think the global flag is required.
# 6  
Old 12-12-2005
Hi Vino,

It has worked...can you please explain me if time permit u otherwise i will try to understand by my own as at least i got the solution.

Thanks Again
Regards
Gauri
# 7  
Old 12-12-2005
Quote:
Originally Posted by mona
I don't think the global flag is required.
True.

Force of habit !
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

sed Or Grep Problem OR Terminal Problem?

I don't know if you guys get this problem sometimes at Terminal but I had been having this problem since yesterday :( Maybe I overdid the Terminal. Even the codes that used to work doesn't work anymore. Here is what 's happening: * I wanted to remove lines containing digits so I used this... (25 Replies)
Discussion started by: Nexeu
25 Replies

2. UNIX for Dummies Questions & Answers

sed problem

Hi Folks, I want to replace these numbers with words as the following: $echo 1 11 223 I want to replace each number with it name (e.g. "1" replaced with "one", etc.) just to determine how sed works in such case. Thanks in advance:). Leo (8 Replies)
Discussion started by: leo_ultra_leo
8 Replies

3. Shell Programming and Scripting

sed problem

Hi i am stuck with a very silly problem :mad: below is my code echo 201010_1212_121.xml i need to replace xml with csv so i did echo 201010_1212_121.xml | sed 's/.*\.xml/.*\.csv/' echo 201010_1212_121.xml | sed 's/*.xml/*.csv/' echo 201010_1212_121.xml |... (4 Replies)
Discussion started by: aishsimplesweet
4 Replies

4. Programming

sed problem

Hi all In input file I have records like this: 0,1,0,87,0,0,"6,87","170,03",0,"43,5",0,0,0,0,"6,87","126,53"and in output file I need that these records transforms in : 0 1 0 87 0 0 6,87 170,03 0 43,5 0 0 0 0 6,87 126,53 Could you help me in this case? Please (3 Replies)
Discussion started by: shizik
3 Replies

5. Shell Programming and Scripting

SED - Problem

I have a file with a lot of numbers in it and I need to clean it up and make it look nice and proper. I found this little gem of a one-liner and basically understand what it is doing but I would like to further understand what each part of the command is doing. Being a newb, I am just trying to... (2 Replies)
Discussion started by: genedc1
2 Replies

6. Shell Programming and Scripting

Sed Problem

I have a file which contain many lines see below. "/var/www/abc>" I want to remove Both of these values "" and > (5 Replies)
Discussion started by: aliahsan81
5 Replies

7. Shell Programming and Scripting

Problem in sed.

Hi All! I am trying to use shell variables in a sed statement, but facing an error.I used the double quotes instead if single quotes in the sed statement. # sed -i -e "s/password/$decoded/g;" $CATALINA_HOME/conf/server.xml sed: -e expression #1, char 11: unterminated `s' command # ... (5 Replies)
Discussion started by: nua7
5 Replies

8. Shell Programming and Scripting

Problem with SED

Hi, I have to use SED to remove the prefix "219-" from a text file containing phone numbers and I have to remove the ":" as well. I write the following code but it does not seem to work. Can someone help me please? mohit@mohit-desktop:~$ sed -n s/219-/" "/p corp_phones_bak > noprefix1... (2 Replies)
Discussion started by: mojoman
2 Replies

9. UNIX for Dummies Questions & Answers

Problem with sed

Hi , echo "07/05/2008" | sed 's/\(..\)\/\(..\)\/\(..\)/\3\2\1/' Output :: 20050708 Expected output is 20080507 Iam not getting the bug in this. Thanks for the help -- penchal (4 Replies)
Discussion started by: penchal_boddu
4 Replies

10. UNIX for Dummies Questions & Answers

Sed Problem

I AM TRYING TO APPEND THE HOSTNAME OF A UNIX SERVER I WORK WITH SO I COULD DO A LOADING INTO A DATABASE. THE COMMAND I AM USING IS df -k | sed 's/^/dataserver /' What I intend to do is append the hostname dynamically by using the hostname command instead of having to manually enter... (1 Reply)
Discussion started by: Chelsea
1 Replies
Login or Register to Ask a Question