Replace a value in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Replace a value in a file
# 1  
Old 09-17-2011
Replace a value in a file

I have a file with the following line

Code:
parameter (nx = 277, ncmk = 377)

I want to write a script where I can replace the current values of of the variables nx and ncmk with new values defined by variables $nx and $ncmk.

Thanks.
# 2  
Old 09-17-2011
Try:
Code:
perl -i -pe "/parameter/&&s/nx = \d+/nx = $nx/&&s/ncmk = \d+/ncmk = $ncmk/" file

This User Gave Thanks to bartus11 For This Post:
# 3  
Old 09-17-2011
Code:
nx="whatyouwant"
ncmk="whateveryouwant"
sed -e "s/\(nx = \)/\1$nx/g" -e "s/\(ncmk = \)/\1$ncmk/g" inputFile > outputFile

--ahamed

---------- Post updated at 03:23 AM ---------- Previous update was at 03:14 AM ----------

Initially I understood your issue incorrectly Smilie. Have corrected the code.

This is what you want right?
Code:
#Input
parameter (nx = 277, ncmk = 377)
 
Ouput
parameter (nx = 123, ncmk = 456)


--ahamed

Last edited by ahamed101; 09-17-2011 at 07:22 AM..
This User Gave Thanks to ahamed101 For This Post:
# 4  
Old 09-17-2011
Many thanks bartus11, that worked like a charm!

Yes ahamed101 that's what I meant. The your bit of code just appends the new values next to the old ones, i.e. it doesn't replace the old values?
# 5  
Old 09-17-2011
Try this

Code:
sed -e "s/\(parameter (nx = \).*\(, ncmk = \).*\()\)$/\1$nx\2$ncmk\3" inputFile > outputFile

--ahamed
This User Gave Thanks to ahamed101 For This Post:
# 6  
Old 09-18-2011
Hi I have another problem of the similar type. This time the line where the value I want to change looks like

Code:
Open (unit=Lfile1, file='Nc_957.dat')

I want to replace the number 957 with a variable $nc. I don't know anything about regex to achieve this.

Also the other problem the above line occurs three times in my file, but I only want the change to be in the third occurrence or the 48th line. I guess it's not ideal if I define the line in case I add more lines of code.

Thanks

---------- Post updated at 03:52 PM ---------- Previous update was at 11:51 AM ----------

I've made some progress the following code does what I want

Code:
perl -i -pe "/Open/&&s/Nc_\d+/Nc_$nx/" test.f

But how can I do this on say the nth line rather than every line it occurs?

Last edited by lost.identity; 09-18-2011 at 12:09 PM..
# 7  
Old 09-18-2011
This will replace every 3rd occurrence of the Open line:
Code:
perl -i -pe "(++\$i%3==0)&&/Open/&&s/Nc_\d+/Nc_$nx/" test.f

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

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Replace character string in txt file using input file(S)

Hi I have a large txt file on my AIX server and I need to replace some text using two other files. So filename1 has about 500 lines similar to: txtcode SYStem100 I have the string I want to change in string2 and the new stringname in string3. Does anyone know a way of doing this? I have... (1 Reply)
Discussion started by: Grueben
1 Replies

2. Shell Programming and Scripting

Avoid overwriting backup file when multiple entries need to replace in one file input from another

Hello, I have been working on script in which search and replace the multiple pattern. 1. update_params.sh read the multiple pattern from input file ParamMapping.txt(old_entry|New_entry) and passing this values one by one to change_text.sh 2. change_text.sh read... (0 Replies)
Discussion started by: ketanraut
0 Replies

3. Shell Programming and Scripting

Perl script to read string from file#1 and find/replace in file#2

Hello Forum. I have a file called abc.sed with the following commands; s/1/one/g s/2/two/g ... I also have a second file called abc.dat and would like to substitute all occurrences of "1 with one", "2 with two", etc and create a new file called abc_new.dat sed -f abc.sed abc.dat >... (10 Replies)
Discussion started by: pchang
10 Replies

4. Shell Programming and Scripting

Bash script to replace text file from a lookup file

Hi. I need assistance with the replacing of text into a specific file via a bash script. My bash script, once run, currently provides a menu of computer names to choose.The script copies onto my system various files, depending what computer was selected in the menu.This is working OK. Now, I... (1 Reply)
Discussion started by: jonesn2000
1 Replies

5. Shell Programming and Scripting

Search and replace from file in awk using a 16 bit text file

Hello, Some time ago a helpful awk file was provided on the forum which I give below: NR==FNR{A=$0;next}{for(j in A){split(A,P,"=");for(i=1;i<=NF;i++){if($i==P){$i=P}}}}1 While it works beautifully on English and Latin characters i.e. within the ASCII range of 127, the moment a character beyond... (6 Replies)
Discussion started by: gimley
6 Replies

6. Shell Programming and Scripting

Search and replace with mapping from a mapper file in a target file

Hello, I have a special problem. I have a file in 8 bit and would like to convert the whole database to 16Bit unicode. The mapping file has the following structure: The mapper is provided as a zip file The target file to be converted contains data in English and 8 bit Urdu mapping, a... (4 Replies)
Discussion started by: gimley
4 Replies

7. Shell Programming and Scripting

Optimised way for search & replace a value on one line in a very huge file (File Size is 24 GB).

Hi Experts, I had to edit (a particular value) in header line of a very huge file so for that i wanted to search & replace a particular value on a file which was of 24 GB in Size. I managed to do it but it took long time to complete. Can anyone please tell me how can we do it in a optimised... (7 Replies)
Discussion started by: manishkomar007
7 Replies

8. Shell Programming and Scripting

script to grep a pattern from file compare contents with another file and replace

Hi All, Need help on this I have 2 files one file file1 which has several entries as : define service{ hostgroup_name !host1,!host5,!host6,.* service_description check_nrpe } define service{ hostgroup_name !host2,!host4,!host6,.* service_description check_opt } another... (2 Replies)
Discussion started by: namitai
2 Replies

9. Shell Programming and Scripting

Read file and for each line replace two variables, add strings and save output in another file

Hi All, I have a file, let's call it "info.tmp" that contains data like this .. ABC123456 PCX333445 BCD789833 I need to read "info.tmp" and for each line add strings in a way that the final output is put /logs/ua/dummy.trigger 'AAA00001.FTP.XXX.BLA03A01.xxxxxx(+1)' where XXX... (5 Replies)
Discussion started by: Andy_ARG
5 Replies

10. UNIX for Dummies Questions & Answers

how can search a String in one text file and replace the whole line in another file

i am very new to UNIX plz help me in this scenario i have two text files as below file1.txt name=Rajakumar. Discipline=Electronics and communication. Designation=software Engineer. file2.txt name=Kannan. Discipline=Mechanical. Designation=CADD Design Engineer. ... (6 Replies)
Discussion started by: kkraja
6 Replies
Login or Register to Ask a Question