How to append to the file?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to append to the file?
# 1  
Old 06-12-2008
How to append to the file?

Hi
I have the file contents as below......

Code:
 MNG={{ABC|fdb|222}=12.0|1.3|1.5}
 MNG={{DEF|dfg|333}=11.0|0|0}
 MNG={{FGH|fcv|444}=4.0|7.0|1.5}


I need to search for the particular id '333' in the file and append to the end
of the particular row with the value 1.6.

Can any one help me to write the perl script for this query?

Last edited by Yogesh Sawant; 06-13-2008 at 05:47 AM.. Reason: added code tags
# 2  
Old 06-12-2008
I would not use Perl for this, but here goes.

Code:
perl -pe 's/(\|333\}.*)\}$/$1|1.6}/' file

Add the -i option if you want to change file directly. The above script simply prints the modified contents of file to standard output.
# 3  
Old 06-12-2008
for example

assuming your file in current dir is tmp and that you wanted to add the '1.6' inside curly brackets followed by '|':

sed -e 's/\(^MNG=.*\|.*\|333}\).*}$/\1\|1.6}/' ./tmp
MNG={{ABC|fdb|222}=12.0|1.3|1.5|1.6}
MNG={{DEF|dfg|333}=11.0|0|0|1.6}
MNG={{FGH|fcv|444}=4.0|7.0|1.5|1.6}
# 4  
Old 06-13-2008
Quote:
Originally Posted by ynir
assuming your file in current dir is tmp and that you wanted to add the '1.6' inside curly brackets followed by '|':

sed -e 's/\(^MNG=.*\|.*\|333}\).*}$/\1\|1.6}/' ./tmp
MNG={{ABC|fdb|222}=12.0|1.3|1.5|1.6}
MNG={{DEF|dfg|333}=11.0|0|0|1.6}
MNG={{FGH|fcv|444}=4.0|7.0|1.5|1.6}
When I use the above command in the perl script its giving the command Garbled error. How to debug this?
# 5  
Old 06-13-2008
It's not a Perl script, it's a sed script. But the Perl script I posted before does the same thing, albeit with a slightly different regular expression.
# 6  
Old 06-13-2008
Quote:
Originally Posted by era
I would not use Perl for this, but here goes.

Code:
perl -pe 's/(\|333\}.*)\}$/$1|1.6}/' file

Add the -i option if you want to change file directly. The above script simply prints the modified contents of file to standard output.
Can you plz help me to write this command in a perl script?
# 7  
Old 06-16-2008
Code:
#!/usr/bin/perl -p
s/(\|333\}.*)\}$/$1|1.6}/

Without more information about what you are trying to accomplish, it's hard to post any useful advice. If you are completely unfamiliar with Perl, why do you require the solution to be in Perl in the first place? If you have an existing Perl script which you want to modify, why don't you post (at least part of) the script here for us to see?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

awk to update file with partial matching line in another file and append text

In the awk below I am trying to cp and paste each matching line in f2 to $3 in f1 if $2 of f1 is in the line in f2 somewhere. There will always be a match (usually more then 1) and my actual data is much larger (several hundreds of lines) in both f1 and f2. When the line in f2 is pasted to $3 in... (4 Replies)
Discussion started by: cmccabe
4 Replies

2. Shell Programming and Scripting

Want it to read the file name and then append date stamp at the end of file?

I was thinking something like for i in `find . -name "*.log.Z"`; do mv $i name.log.Z or something like that? (3 Replies)
Discussion started by: xgringo
3 Replies

3. Shell Programming and Scripting

Help with ksh-to read ip file & append lines to another file based on pattern match

Hi, I need help with this- input.txt : L B white X Y white A B brown M Y black Read this input file and if 3rd column is "white", then add specific lines to another file insert.txt. If 3rd column is brown, add different set of lines to insert.txt, and so on. For example, the given... (6 Replies)
Discussion started by: prashob123
6 Replies

4. UNIX for Dummies Questions & Answers

How to append portion of a file content to another file when a certain pattern is matching?

Hi ladies and gentleman.. I have two text file with me. I need to replace one of the file content to another file if one both files have a matching pattern. Example: text1.txt: ABCD 1234567,HELLO_WORLDA,HELLO_WORLDB DCBA 3456789,HELLO_WORLDE,HELLO_WORLDF text2.txt: XXXX,ABCD... (25 Replies)
Discussion started by: bananamen
25 Replies

5. Shell Programming and Scripting

How to search and append words in the same file using unix scripting file operations

Hi , I have a file myhost.txt which contains below, 127.0.0.1 localhost 1.17.1.5 atrpx958 11.17.10.11 atrpx958zone nsybhost I need to append words only after "atrpx958" like 'myhost' and 'libhost' and not after atrpx958zone. How to search the word atrpx958(which is hostname) only,... (5 Replies)
Discussion started by: gsreeni
5 Replies

6. Shell Programming and Scripting

Unix Script file to Append Characters before rows in file.

Hi Experts, I am working on HP-UX. I am new to shell scripting. I would like to have a shell script which will prefix: 1. "H|" before first row of my file and, 2. "T" for all other rows of the file. For Example - File before running the script 20100430|4123451810|218.50|TC 20100430 ... (4 Replies)
Discussion started by: phani333
4 Replies

7. UNIX for Dummies Questions & Answers

How can I append a text at end of file after displaying the file

I have a file "sample.txt" with the content as below: Hi This is a Sample Text. I need a single command using cat which serve the following purpose. 1.display the contents of sample.txt 2.append some text to it 3. and then exit But, all should be served by a sinle command.:confused: (1 Reply)
Discussion started by: g.ashok
1 Replies

8. Solaris

gzip a file and append creation date stamp to file

I want to gzip a file and append the creation date to the end of the file. How can I accomplish this task. Basically they are log files which need a creation date stamp appended to make sure they do not overwrite other log files. -jack (3 Replies)
Discussion started by: jacktravine
3 Replies

9. UNIX for Dummies Questions & Answers

Trying to empty file using > but the file size increasing when next append

AIX 5.3 / KSH I have a Java application which creates a log file a.log. I have a KSH script which does the following action cp a.log /directory2/b.log > a.log After this the file size goes to 0 as per "ls -l" Then next time when the application writes into this file, the file size... (4 Replies)
Discussion started by: firdousamir
4 Replies

10. Shell Programming and Scripting

Append a field to the end of each line of a file based on searching another file.

Hi All, I have two comma separated value(CSV) files, say FileA and FileB. The contents looks like that shown below. FileA EmpNo,Name,Age,Sex, 1000,ABC,23,M, 1001,DES,24,F, ... (2 Replies)
Discussion started by: ultimate
2 Replies
Login or Register to Ask a Question