sed command not quite working yet, if anyone can help appreciated


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting sed command not quite working yet, if anyone can help appreciated
# 1  
Old 02-06-2011
sed command not quite working yet, if anyone can help appreciated

Hi gang,

I am trying to create some batch commands for many html pages I need to re-format.

I am trying the number 2b in this example to wrap anchor tags around the number that will be referenced in the footnotes.

I am trying to use the h/H hold command, but I have never tried using it before and it is not yet working.

From the sed help file example it uses the 'g/G' to extract whatever is in the hold buffer.

So basically, each of my html pages have pages numbers of text referring to the original text book numbers and used to reference each pages footnotes. So I want sed, each time it finds a page number to hold that page number in 'h/H' and then check each line after for '2b' or any number in which the line does not begin with '<' (already formatted with HTML tags) and wrap the number in anchor tags according to the last page number held in HOLD.

Most pages have multiple page references, so every time sed encounters a new page number, it should re-write the HOLD space with new page number and begin applying that to each anchor, until of course another new page number is encountered.

I thought I had that with:
Code:
sed -i -e '/[0-9]\{1,3\}$/{h;};/^</!s/\([0-9]\{1,3\}[b]\{,1\}\)/\<a href="g\1End" name="g\1Txt"><font size=-1">[g:\1]<\/font><\/a>/g' 1.html

but for this line of text:
Code:
From old Ikshváku's  2b line he came,

I get:
Code:
From old Ikshváku's  <a href="g2bEnd" name="g2bTxt"><font size=-1">[g:2b]</font></a> line he came,

It looks like 'g/G' is not what I need to extract whatever is (hopefully) in the HOLD space. Can anyone help me out here?

Originially I would have thought the two semi-colons after 'h' inside curly brackets and then outside would puke back an error, but they do not. Having just the one (inside curly brackets), does result in sed balking.

appreciated.
tt
# 2  
Old 02-06-2011
Hi, g/G is a command in itself, it only copies from the hold space into the pattern space. I cannot be part of a substitution command. I think this will be complicated with sed and I suspect you'll find awk a better match...
# 3  
Old 02-06-2011
Quote:
I cannot be part of a substitution command. I think this will be complicated with sed
so ok that explains why I am getting the 'g' in front when I want the chapter number I was hoping was being stored in hold. so no way to extract that chapter number ans use it as part of a sub command? Why have the hold command then? It seems logical to hold data that will be used (inserted/sub'd) in somewhere no?
Quote:
I suspect you'll find awk a better match...
I suspect you're probably right, but I do not know awk and even though I have been looking for a tut recently b/c I am starting to need to do more things like this and I am sure awk will be more versatile, I just don't have the time to learn what I need.

any awk one-liners that do something similar I might be able to apply?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

sed command not working

Hello There - Iam trying to get this expdp running for oracle backup. And this is the code below: ### Run the export. ### Comment out any LOGFILE parameters in the .par file. if grep -i "Logfile" /<Path>$1_$2_$3.par; then ## Comment out any LOGFILE... (7 Replies)
Discussion started by: bkilaru
7 Replies

2. UNIX for Beginners Questions & Answers

sed command not working properly

This is my sample file cat bipin.txt Unix is an OS Unix has its own commmands Unix is a user friendly OS Unix is platform independent Unix is a time sharing OS the best OS to learn is Unix Abinitio uses Unix in backend When i use sed 's/Unix/Linux/' bipin.txt , only the first... (2 Replies)
Discussion started by: Bipin_1991
2 Replies

3. Shell Programming and Scripting

sed command not working

cat bipin.txt Unix is an OS Unix has its own commmands Unix is a user friendly OS Unix is platform independent Unix is a time sharing OS the best OS to learn is Unix Abinitio uses Unix in backend this is my file when i use sed 's/Unix/Linux/' bipin.txt all the occurences are getting... (0 Replies)
Discussion started by: Bipin_1991
0 Replies

4. Shell Programming and Scripting

sed command not working

Hi All, I am trying to run a sed command to replace a string in a file. sed -i -e "s/$Job_status_old ,$line/Job_status_new ,$line/g" stat.txt The command wen run from the command promt works fine. But the same command does not work when its put in a script. The script is not failing... (3 Replies)
Discussion started by: samyamkrishna
3 Replies

5. Shell Programming and Scripting

Why is this command not working? (sed)

Hi guys, the command is echo "Online Memory : 32768 MB" | sed 's/.*\(+\).*/\1/' I would expect it to print 32768, it cuts off any character to the first digit, then gets all digits in 1, cuts off the rest after the digits, and should print 32768, instead it... (4 Replies)
Discussion started by: funksen
4 Replies

6. Shell Programming and Scripting

sed Command not working in AIX UNIX

Hi 1st problem -------------- i have this sed command in my unix script which replaces new line and carriage return in a line with the string "&#xA" the script works fine in Linux 3.0.101-0.5, but not in AIX 1 7 , the "s/\r/\&#xA/g" replacement, replaces all the character "r" in the file.... (3 Replies)
Discussion started by: maximus_jack
3 Replies

7. Shell Programming and Scripting

sed Command new Line not working Tried many variations

Hi I have assigned an output of a command to $I. I try to print the input and put a new line after occurrence of the hostname which is assigned to $HOST1 ( Example: pwrm16 ) . First of all I need to get rid of the Colon after the host name pwrm16: and make it pwrm16 then I want to print the... (10 Replies)
Discussion started by: mnassiri
10 Replies

8. Shell Programming and Scripting

sed find and replace command not working

Hi, Am trying to replace a character '-' with 'O' in position 289 in my file but am not success with below command. sed 's/^\(.\{289\}\)-/\1O/' filename sed: 0602-404 Function s/^\(.\{289\}\)-/\1O/ cannot be parsed. Thanks in Advance Sara Video tutorial on how to use code tags in The... (9 Replies)
Discussion started by: Sara183
9 Replies

9. Shell Programming and Scripting

sed command working different in linux environment.

Hi I tried running the code scrname=`whence $0 | sed -e 's/\.\///g'` where $0 is substituted by cm_dsjobrun.sh in unix env then the value it returns me is SCRNAME=/data/ds/dpr_ebicm_uat/etl/cm3_0/scripts/shell/cm_dsjobrun.sh whereas i ran the same code on linux env The value... (9 Replies)
Discussion started by: vee_789
9 Replies

10. UNIX for Dummies Questions & Answers

Sed command not working

Hi, I have a test file as follows: 1G102119 ^ AA1179291 ^ 06oct2006 09:50:35^ 73.4^ 2^ 13^ 0^ 1493 1G102119 ^ AA1179291 ^ 06oct2006 09:49:45^ 73.4^ 2^ 13^ 0^ 1493 1G102119 ^ AA1179291 ^ 06oct2006 09:48:58^ 73.4^ 2^ 17^ 0^ 2 1G102119 ... (9 Replies)
Discussion started by: shashi_kiran_v
9 Replies
Login or Register to Ask a Question