Replace Forward Slash with sed


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Replace Forward Slash with sed
# 15  
Old 09-28-2011
It is a product called Actimize, we really cant change those processes to remove the blank lines Smilie
# 16  
Old 09-28-2011
Code:
awk '/decalre|begin/, /;/ {  
  sub(/\//, "\\/")
  }1' infile

Or maybe:

Code:
awk '/decalre|begin|exception/, /;/ {  
  sub(/\//, "\\/")
  }1' infile

This User Gave Thanks to radoulov For This Post:
# 17  
Old 09-28-2011
Quote:
Originally Posted by radoulov
And yes, I've pointed out that the code was implementation-specific.
Indeed you did. I only went into detail about it in case scottn or anyone else was interested in the most likely reason why it did not work with his sed.

That said, unless GNU sed behavior changed with a 4.2+ release, your suggestion is incorrect. Testing with GNU sed 4.1.5 (admittedly, a 5 year old version), the following does not replace the first / in the file (or any other) with \/:

Quote:
Originally Posted by radoulov
Code:
sed -i '1s|^/|\/|' infile

\\/ works as expected, though.

Regards,
Alister
These 2 Users Gave Thanks to alister For This Post:
# 18  
Old 09-28-2011
Quote:
Originally Posted by alister
That said, unless GNU sed behavior changed with a 4.2+ release, your suggestion is incorrect. Testing with GNU sed 4.1.5 (admittedly, a 5 year old version), the following does not replace the first / in the file (or any other) with \/
You're right, it doesn't return \/ even with 4.2.1 (evidently I missed one backslash).
Thanks to Scott and to you for pointing out the error!

Last edited by radoulov; 09-29-2011 at 04:55 AM..
# 19  
Old 09-29-2011
Quote:
Originally Posted by radoulov
Code:
awk '/decalre|begin/, /;/ {  
  sub(/\//, "\\/")
  }1' infile

Or maybe:

Code:
awk '/decalre|begin|exception/, /;/ {  
  sub(/\//, "\\/")
  }1' infile


This is working but it has 2 limitations.

1. it displays the output and it doesn't replace the contents of the file.

2.it replaces all the \ and not the first occurance alone in a line.
# 20  
Old 09-29-2011
Fixed:

Code:
awk > _new_ '/decalre|begin|exception/, /;/ {  
  sub(/^\//, "\\/")
  }1' infile &&
  mv -- _new_ infile

This User Gave Thanks to radoulov For This Post:
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Replace string until 3Rd occurance of forward slash(/)

I have a file abc.txt which has records like 456 /home/fgg/abdc.txt 3567 /home/fdss/vfgb.txt 23 /home/asd/dfght.txt I WANT TO REMOVE STRING UNTIL 3RD OCCURANCE OF FORWARD SLASH Output should be like abdc.txt vfgb.txt dfght.txt (5 Replies)
Discussion started by: himanshupant
5 Replies

2. Shell Programming and Scripting

Escaping Forward Slash

./split2.sh: line 1: split/ssl/pop3s.txt: No such file or directory sort: cannot read: split/ssl/pop3s.txt: No such file or directory Hi there, I am pulling data from the following source: ssl/http ssl/http ssl/http-alt ssl/https ssl/https ssl/https ssl/https ssl/https ssl/https... (3 Replies)
Discussion started by: alvinoo
3 Replies

3. Shell Programming and Scripting

sed command to replace slash in date format only

Hello experts. I haven't been able to find a solution for this using the sed command. I only want to replace the forward slash with string "FW_SLASH" only if there's a number right after the slash while preserving the original number. I have a file containing 2 entries: Original File:... (5 Replies)
Discussion started by: pchang
5 Replies

4. Shell Programming and Scripting

AWK or SED to replace forward slash

hi hope somebody can help, there seems to be bit on the net about this, but still cant make it work the way i need. i have a file live this mm dd ff /dev/name1 mm dd ff /dev/name2 mm dd ff /dev/name3 mm dd ff /dev/name4 i need to update /dev/name1 etc to /newdev/new/name1 etc so... (5 Replies)
Discussion started by: dshakey
5 Replies

5. Shell Programming and Scripting

Significance of forward slash(/) while specifying a directory

What is the significance of the forward slash(/) while specifying a directory? cp -av /dir/ /opt/ and cp -av /dir /opt Does effectively the same job it seems? (2 Replies)
Discussion started by: proactiveaditya
2 Replies

6. Shell Programming and Scripting

How to replace comma by slash using sed in an UTF8 file

Hello all, I'd like to replace "," by "/" in a utf8 file from postion X to Y. Comma "," is also defined as delimiter. 12345678901234567890,123456789012345,12345678901234567890, aaaa,aaaa,aaaaa ,bbb,bbbb,bbbbb ,cccccc,cc , Result should be... (1 Reply)
Discussion started by: fmofmo
1 Replies

7. Shell Programming and Scripting

Using sed to append backward slash before forward slash

Hi all, I need to know way of inserting backward slash before forward slash. My problem is that i need to supply directory path as an argument while invoking cshell script. This argument is further used in script (i.e. sed is used to insert this path in some file). So i need to place \ in front... (2 Replies)
Discussion started by: sarbjit
2 Replies

8. Shell Programming and Scripting

escaping / (forward slash)

how to escape / (forward slash) in a string. I have following scnerio: sed s/${var1}{$var2} var1 and var2 both contain slashes, but sed gives error if there is a slash in var1 or var2. sed is used here to replace var1 with var2. Thanks in advance (1 Reply)
Discussion started by: farooqpervaiz
1 Replies

9. Shell Programming and Scripting

Help with SED and forward slash

Using the script: (Called replaceit) #!/bin/ksh String=$1 Replace=$2 sed -e "s/${orig}/${new}/g" oldfile.txt > newfile.txt In oldfile.txt, I'm looking for: getenv("Work") And change it To: /u/web I execute the script: replaceit "getenv(\""Work\"")" /u/web I'm getting sed... (3 Replies)
Discussion started by: gseyforth
3 Replies

10. Shell Programming and Scripting

grep for forward slash

How can I use grep to grab a line that contains a forward slash? I've tried: grep "/pd " file, Inevitably it just grabs pd not /pd. (3 Replies)
Discussion started by: wxornot
3 Replies
Login or Register to Ask a Question