Modify a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Modify a file
# 1  
Old 10-02-2008
Modify a file

Hi all

Can anyone suggest me a good solution ? My requirement is as follows
I have a plain text file similar to this...


sending data to 0003345234
here is the output...
,..........
...........
.......
sending data to 00033452ab
here is the output...
,..........
...........
.
.......
sending data to 00033abfbb
here is the output...
,..........
...........
abcabc----
.......

----------------------------------------

Now I want to modify this file as follows


sending data to 0003345234 Mumbai

here is the output...
,..........
...........
.
.......
sending data to 00033452ab Culcutta
here is the output...
,..........
...........
.
.......
sending data to 00033abfbb Pune
here is the output...
,..........
...........
.
.......

----------------------------------------

I have a comparison file also like
00033abfbb Pune
00033452ab Culcutta
003345234 Mumbai

Now the problem is, in the orginal file some time there would be some white spaces at the end of the line.

Cheers
Hari
# 2  
Old 10-02-2008
Search this site for NR==FNR
# 3  
Old 10-02-2008
That coudnt help me..
Let me tell you abt the script I am using now.....
Code:
for i in `grep Sending $h | awk '{print $8}'`
do
SYSID=`grep $i compare.file | awk '{print $3}' | head -1`
LOCATION=`grep $i compare.file | awk '{print $2}' | head -1`
sed 's/'${SYSID}$'/'${SYSID}' '${LOCATION}'/g'  $h  > tmp
cat tmp > $h
done

This works but, where ever the $h file has spaces (one space or some times two) after the SYSID, it doesn't
Also note that SYSID is a MAC address which has alpha numeric characters and the SYSID may repeat in between the lines not at last, where I don't want to add the LOCATION.

Last edited by ./hari.sh; 10-02-2008 at 05:27 AM.. Reason: Added more details about the problem
# 4  
Old 10-02-2008
Code:
awk 'NR==FNR { loc[$1] = $2; next }
/sending/ { print $0, loc[$3]; next }1' compare.file "$h"

# 5  
Old 10-02-2008
Its not working! Pls check again

Last edited by ./hari.sh; 10-02-2008 at 06:45 AM..
# 6  
Old 10-02-2008
Quote:
Originally Posted by ./hari.sh
Its not working! Pls check again
Did you ask yourself why?

Quote:
Originally Posted by era
Code:
awk 'NR==FNR { loc[$1] = $2; next }
/sending/ { print $0, loc[$4]; next }1' compare.file data.file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Ed to modify a file --- or not?

Running Oracle Linux 6 (derivative of RHEL 6) Given this snippet of code in a shell script: #-- reset oratab to use 11.2 home for dwdev #-- normally we'd just use sed to do this sort of thing, but that would #-- require permissions that we don't have in the /etc/ directory, so we #-- ... (3 Replies)
Discussion started by: edstevens
3 Replies

2. Shell Programming and Scripting

Modify CSV file

Hi, I would like to change my CSV file by adding " and : and moving some of the information around. the CSV file looks as follows: 501254424;500440257;PE PACKS;300467279;PREP;;276476070;655031001867176;Two Block;Olga;25/12/2015 00:00:00;Olga I would like to move the field 7 to the front "... (13 Replies)
Discussion started by: omuhans123
13 Replies

3. Shell Programming and Scripting

File modify

Hi All I am getting a file with below pattern - 00150366 05/08/2015 07:14:32 8000186167+++ 50195281000000000371001010903236 800186167+++ 100209000000000 800000018617+++ 50295281000000000371001010900217================================3u4398482344334=432434 00150367 05/08/2015 07:14:32... (7 Replies)
Discussion started by: honey26
7 Replies

4. Shell Programming and Scripting

Modify a file by another file: add new line and variable after string is found

hello, I have problem with writing/adjusting a shell script. I searched forum and unfortunately couldn't write scipt based on the information I found. I never wtire such so it's hard for me and I do need to modify one script immediately. case looks like: 1. 'file' that needs to be modified... (3 Replies)
Discussion started by: bipbip
3 Replies

5. Shell Programming and Scripting

ksh- redirect stderr to file and then modify the file

I have the following: remsh $host -n 2>>syslog_issue_list.txt grep -i -e "EMS" -e "error" -e "warning" -e "excessive" /var/adm/syslog/syslog.log | awk /"$DATE1"/ | awk -vhost="$host" '!/remsh|telnetd/{print host "\n", $0 >> "syslog_issue_list.txt"}' I am creating a health script that has... (4 Replies)
Discussion started by: chipblah84
4 Replies

6. Shell Programming and Scripting

Modify file

Hi, I have a file that looks like this: 27+:<10,289808,1> 31+:<11,1445372,1> 33-:<7,1014101,2> 35+:<11,728811,1> 36-:<11,1445205,0> 37+:<11,1445792,2> and I want to change it to this: + 10 289808 + 11 1445372 - 7 1014101 + 11 728811 - 11 1445205 + 11 1445792 (3 Replies)
Discussion started by: kylle345
3 Replies

7. Shell Programming and Scripting

Perl : how to modify a file without generate a temporary file

Hi All, I have a file like below, how can i insert one line after line 1 without using a temporary file in perl? line 1 line 2 line 3 expected result line 1 new line <---insert here line 2 line 3 (2 Replies)
Discussion started by: summer_cherry
2 Replies

8. UNIX for Dummies Questions & Answers

Modify Text File

Hi, I would like to remove any lines from a text file that begin with #, or that are blank. How can I do that with BASH? Mike (3 Replies)
Discussion started by: msb65
3 Replies

9. Shell Programming and Scripting

Can I modify the .bashrc file instead of .profile file to customize my login?

Hello, I got this question which tells me to customize my login script. Some people in the forums suggested to modify the .profile file in my home directory. I did so, but none of my customizations show up when I open the terminal after. So, I tried to modify other files in my home directory,... (1 Reply)
Discussion started by: Hyunkel
1 Replies

10. Shell Programming and Scripting

modify a file

I'm a new member of the forum, I had this new generate file since I use 'grep' and 'awk', what I want to do is get rid off the all 0s before the numbers, is there any one who could help me to figure it out? Thanks a lot! yun 0000000029 000q7472 2002/03/01 0000000030 000q7472 2002/03/01 ... (2 Replies)
Discussion started by: yxiao
2 Replies
Login or Register to Ask a Question