Sponsored Content
Top Forums Shell Programming and Scripting Can BASH handle mathematical operations and do a Search & Replace? Post 302489949 by jl487 on Saturday 22nd of January 2011 11:46:08 PM
Old 01-23-2011
I tried running your code and realized that it prints out the output, rather than saving the file. How come when I do a
Quote:
> file.tmp
command, it doesn't create an output file?

---------- Post updated at 10:58 PM ---------- Previous update was at 10:29 PM ----------

Quote:
Originally Posted by jl487
I tried running your code and realized that it prints out the output, rather than saving the file. How come when I do a command, it doesn't create an output file?
nevermind.... made a dumb mistake. vgersh99 thanks for the help!

---------- Post updated at 11:46 PM ---------- Previous update was at 10:58 PM ----------

sorry for bringing back what I thought was a "dead thread"

I realized that some of the xml files has the following lines:
Code:
<xControl xId="" xType="Label" xRow="1" xColumn="3"  xCssStyle="margin-left:20px;margin-right:3px;">

Therefore, both margin-left and margin-right would need to be changed. What I did was create the following bash file:
Code:
nawk -f jl1.awk myFile.xml > myFile.tmp
mv myFile.tmp myFile.xml

nawk -f jl2.awk myFile.xml > myFile.tmp
mv myFile.tmp myFile.xml

where jl1.awk is the following:
Code:
match($0,"margin-right:[^;][^;]*") {
    str=substr($0,RSTART,RLENGTH)
    gsub("[^0-9]","",str)
    str-=(str/4)
    $0=substr($0,1,RSTART-1) "margin-right:" str "px;\">"
substr($0,RSTART+RLENGTH+1)
}
1

and jl2.awk is:
Code:
match($0,"margin-left:[^;][^;]*") {
    str=substr($0,RSTART,RLENGTH)
    gsub("[^0-9]","",str)
    str-=(str/4)
    $0=substr($0,1,RSTART-1) "margin-left:" str "px;"
substr($0,RSTART+RLENGTH+1)
}
1

jl1.awk seems to work fine, but when I run jl2.awk, the margin-right information is deleted. Why is this?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help, sed search&replace

Plzzzz, tell me some script about this... What does this mean ? sed '/^ */s///' sed '/^/s// /' and why it's diferent ??? sed '/ */s// /g' and sed 's/ */ /g'. It's all the same ??? Thanks you very much (2 Replies)
Discussion started by: mle
2 Replies

2. Shell Programming and Scripting

Search & replace

Is there any way we can achieve search & replace with awk? I could achieve the same with sed in following way - sed 's/A/B/g' file1 > file2 But the same regex if I try with using awk following way, awk 's/A/B/g' file1 > file2 it gives me Syntax error. I strongly believe I am... (1 Reply)
Discussion started by: videsh77
1 Replies

3. Shell Programming and Scripting

search & replace in variable

Can I use search & replace in any variable? Suppose I have one variable named var1 which holds value "abcabc" I need to search 'a' in var1 and want to replace with 'x' like 'xbcxbc'. Is it possible? Can you provide me an example? Malay (3 Replies)
Discussion started by: malaymaru
3 Replies

4. UNIX for Dummies Questions & Answers

String Search & Replace

Hey, I want to have a C program which, for an existing file supplied by the command line argument (E.g. File1.txt) replaces all the occurrences of the words: "We” or “we” by “I” “a” by “the” “A” by “The”. Then print the replaced file. All other characters of the file are to be left... (1 Reply)
Discussion started by: IwishIknewC
1 Replies

5. Shell Programming and Scripting

Need help with search & replace

I have a file that has some accent characters in it when viewed in some text editors, but when viewed in vi they come in as ~R and ~U. I need to make a script to remove these characters from the file, but have been unsuccessful. I am not sure how sed or awk, or something similar is viewing them,... (8 Replies)
Discussion started by: tcovert
8 Replies

6. UNIX for Dummies Questions & Answers

Search & Replace

Hi , I ahve a text file which has several instances of the text such as run_time: 09:30 I need to add double quotes before and after the time value i.e: run_time: "09:30" Any suggestions on how to go about the same (4 Replies)
Discussion started by: jobbyjoseph
4 Replies

7. Shell Programming and Scripting

search & replace pattern

Hi, My problem is that I have to search a changing pattern and replace it with the wild card char "*" i/p: 99_*_YYYYMMDD_SRC.txt.tar.gz o/p: 99_*_*_SRC.txt.tar.gz The problem is that YYYYMMDD pattern is not static. It could be YYYYMMDDHHMI or could be YYYYMMDDHHMISS. Can... (10 Replies)
Discussion started by: dips_ag
10 Replies

8. Shell Programming and Scripting

Search & Replace

Hi all Please can you help me with a script to check several files for the following string: encoding=""and replace it with: encoding="UTF-8"I did the following, : #!/bin/sh string1="encoding=""" string2="encoding="UTF-8" sed 's/'"$string1"'/'"$string2"'/g'but does not work. Please can... (18 Replies)
Discussion started by: fretagi
18 Replies

9. Shell Programming and Scripting

Mathematical Operations on Column

Hi All, I want to perform a mathematical operation on column. Can anyone please help? Here is the sample of operation to be performed: 123 996 100 123 996 200 123 996 200 2015-09-21 123 996 100 123 996 200 123 996 100 What I want is to multiple all values of column # 3 by 100 and... (3 Replies)
Discussion started by: Zaib
3 Replies

10. Shell Programming and Scripting

Search & Replace

Hi Gurus, I have two files. I want to read sessoin_name from the file1 and replace $Param4 & $Param5 in file2 with connection_name in specified in file1. The file1 will have data in following format File 1 session_name,connection_name s_abcd,Listener_2 s_def,Listener_1 source file... (7 Replies)
Discussion started by: r_t_1601
7 Replies
All times are GMT -4. The time now is 04:03 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy