Adding new field


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Adding new field
# 1  
Old 08-16-2010
Adding new field

Hello,

I have a main file with IP addresses like this:
Code:
Erisim var,100,172.17.241.5,4006,60,IS0799,TCP/IP
Erisim var,1003,172.17.140.4,4004,60,IS2156,TCP/IP
Erisim var,1004,172.17.140.5,4002,60,IS2636,TCP/IP
Erisim var,1005,172.17.140.5,4004,60,IS2436,TCP/IP
Erisim var,1006,172.17.140.5,4006,60,IS3027,TCP/IP
Erisim var,1007,172.17.140.21,4002,60,IS2132,TCP/IP

I am comparing this file to 3 other files and trying to match it's IP addresses, if it matches I need to append the filename at the end of the field of the main file like this:

Code:
Erisim var,100,172.17.241.5,4006,60,IS0799,TCP/IP    Server1
Erisim var,1003,172.17.140.4,4004,60,IS2156,TCP/IP   Server2
Erisim var,1004,172.17.140.5,4002,60,IS2636,TCP/IP   Server3
Erisim var,1005,172.17.140.5,4004,60,IS2436,TCP/IP   Server2
Erisim var,1006,172.17.140.5,4006,60,IS3027,TCP/IP   Server1
Erisim var,1007,172.17.140.21,4002,60,IS2132,TCP/IP  Server3

Is there a way to append such results using awk?

something like "if the main file's first ip address matches server1's ip address then append "Server1" as the 8th field"

thanks.

Moderator's Comments:
Mod Comment Use code tags please, ty.

Last edited by zaxxon; 08-16-2010 at 08:20 AM..
# 2  
Old 08-16-2010
provide the sample of the 3 other files with server IP address.
# 3  
Old 08-16-2010
Main file:

Code:
Kesik	        1	172.17.146.90	4008	60	IS2514	TCP/IP
Erisim var	2	172.17.132.25	4006	60	IS5787	TCP/IP
Erisim var	3	172.17.203.101	4006	60	IS1511	TCP/IP
Erisim var	4	172.17.140.117	4033	15	K.CAMLICA	TCP/IP
Kesik	        5	172.17.242.45	4014	60	ISHB08-1	TCP/IP
Kesik	        6	172.17.132.113	4034	15	B.CAMLICA	TCP/IP
Kesik	        7	172.17.132.105	4058	15	ISKULE	TCP/IP
Kesik	        8	172.17.132.57	4003	60	IS0623	TCP/IP
Erisim var	9	172.17.132.125	4036	16	KINALI_SAU	TCP/IP
Erisim var	10	172.17.132.129	4010	60	IS1343	TCP/IP
Kesik	        11	172.17.132.41	4010	15	ALEMDAG	TCP/IP
Kesik	        12	172.17.132.65	4037	15	MASLAK	TCP/IP


Server 1:

Code:
AVE4A54-SA4642-6P-01	MTN12818	1				172.17.146.90	
AVEA-14-BOTT15-20P-01	MTN12902	1				172.17.132.25	
AVEA-34-IS2137-6P-01  	MTN12693	1				172.17.203.101	
AVEA-34-IS4283-2P-01	        MTN11038	1				172.17.140.117

Server 2:

Code:
AVE4A54-SA4642-6P-01	MTN12818	1				172.17.242.45	
AVEA-14-BOTT15-20P-01	MTN12902	1				172.17.132.113	
AVEA-34-IS2137-6P-01  	MTN12693	1				172.17.132.105	
AVEA-34-IS4283-2P-01	        MTN11038	1				172.17.132.57

Server 3:

Code:
AVE4A54-SA4642-6P-01	MTN12818	1				172.17.132.125	
AVEA-14-BOTT15-20P-01	MTN12902	1				172.17.132.129	
AVEA-34-IS2137-6P-01  	MTN12693	1				172.17.132.41	
AVEA-34-IS4283-2P-01	        MTN11038	1				172.17.132.65



Sample output:

Code:
Code:
Kesik	        1	172.17.146.90	4008	60	IS2514	TCP/IP    Server1
Erisim var	2	172.17.132.25	4006	60	IS5787	TCP/IP    Server1
Erisim var	3	172.17.203.101	4006	60	IS1511	TCP/IP    Server1
Erisim var	4	172.17.140.117	4033	15	K.CAMLICA	TCP/IP    Server1 
Kesik	        5	172.17.242.45	4014	60	ISHB08-1	TCP/IP    Server2
Kesik	        6	172.17.132.113	4034	15	B.CAMLICA	TCP/IP    Server2
Kesik	        7	172.17.132.105	4058	15	ISKULE	TCP/IP    Server2
Kesik	        8	172.17.132.57	4003	60	IS0623	TCP/IP    Server2
Erisim var	9	172.17.132.125	4036	16	KINALI_SAU	TCP/IP    Server3
Erisim var	10	172.17.132.129	4010	60	IS1343	TCP/IP    Server3
Kesik	        11	172.17.132.41	4010	15	ALEMDAG	TCP/IP    Server3
Kesik	        12	172.17.132.65	4037	15	MASLAK	TCP/IP    Server3
Here you go

# 4  
Old 08-16-2010
Here you go :-

Code:
nawk '
(FILENAME=="server3.txt") { a[$4]=FILENAME ; next}
(FILENAME=="server2.txt") { a[$4]=FILENAME ; next}
(FILENAME=="server1.txt") { a[$4]=FILENAME ; next}
( $3 in a ) {print $0,"\t",a[$3] }
' server3.txt server2.txt server1.txt mainfile.txt

SmilieSmilieSmilie
# 5  
Old 08-16-2010
ahmad,

can you please explain the code ?
# 6  
Old 08-16-2010
nawk : command not found...

I'm on a redhat server by the way and the files are in CSV format.

I tried your code with 'gawk' but it didn't work.
# 7  
Old 08-16-2010
you should say so use below modification (FS)

Code:
gawk '
(FILENAME=="server3.txt") { a[$4]=FILENAME ; next}
(FILENAME=="server2.txt") { a[$4]=FILENAME ; next}
(FILENAME=="server1.txt") { a[$4]=FILENAME ; next}
( $3 in a ) {print $0,"\t,",a[$3] }
' FS="," server3.txt FS="," server2.txt FS="," server1.txt FS="," mainfile.txt

SmilieSmilieSmilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Adding field to file

Hi I have file as given below 040|14300|40.0|563000 042|13200000|40.0 041|100|40.0 043|10000|40.0 045|102|40.0 I want to check if field 4 is null then I have to place | in position 4. result set should be 040|14300|40.0|563000 042|13200000|40.0| 041|100|40.0| 043|10000|40.0|... (9 Replies)
Discussion started by: shabeena
9 Replies

2. Shell Programming and Scripting

Field extract w/o - and adding formats

I have a txt file like below: Accession Orderable Unique ID Subject ID Timepoint Colletion Date/Time 12-170-0185 Glucose 1756487 1 D-07_H00.03 18-JUN-2012 06:03:00 12-170-0185 Insulin 1756487 1 D-07_H00.03 18-JUN-2012 06:03:00 12-170-0200 Glucose 1756487 1 D-07_H00.05... (9 Replies)
Discussion started by: Daniel Gate
9 Replies

3. Shell Programming and Scripting

Adding an additional blank field to a file

Hi, I have the following file, I'd like to add an additional blank field to this file This is a tab delimited file, I have tried the same thing on excel, but looking for a unix solution. Here is my input: Country Postal Admin4 StreetBaseName StreetType HUN 2243 Kóka Dózsa György ... (3 Replies)
Discussion started by: ramky79
3 Replies

4. Shell Programming and Scripting

Adding matching field

I have a flat file test.log red,5,,,,, green,7,,,,, blue,4,,,,, red,8,,,,, green,9,,,,, How i get a a result: blue,4,,,,, green,16,,,,, red,13,,,,, Thanks Video tutorial on how to use code tags in The UNIX and Linux Forums. (2 Replies)
Discussion started by: sabercats
2 Replies

5. Shell Programming and Scripting

Adding total of first field for each number in the second field

Dears, I need a script or command which can find the unique number from the second filed and against that number it adds the total of first field . 17215630 , 0 907043 ,1 201050 ,10 394149 ,4 1964 ,9 17215630, 0 907043 ,1 201050, 10 394149 ,4 1964 ,9 1234234, 55 23 ,100 33 ,67 ... (2 Replies)
Discussion started by: shary
2 Replies

6. Shell Programming and Scripting

adding field values if field matches

hi i have file as below , i want to add duplicate records like bell_bb to one record with valuve as 15 ( addition of both ) any oneline awk script to achive this ? header 0 CAMPAIGN_NAME 1 Bell_BB 14 Bell_MONTHLY 803 SOLO_UNBEATABLE 644 Bell_BB 1 Bell_MONTHLY 25 SOLO_UNBEATABLE... (4 Replies)
Discussion started by: raghavendra.cse
4 Replies

7. Shell Programming and Scripting

adding another field to SED output

Dear experts, I have a file called "check" with contents like below i used the sed command like below to get the value of "success" and "failed" only My question is how can i get the value to include the time "03:15", so that i can get a value such as below : - Appreciate... (4 Replies)
Discussion started by: aismann
4 Replies

8. Shell Programming and Scripting

Problem adding into an array field!!!

Hi, Kindly assist by analyzing the code below and suggest changes to achieve the required output. The input file: 01-010241800000 35000 MV010 02/03/09 0306 03060226 03 02-004103300000 470000 MV010 02/03/09 0301 03010276 03 The objective is to convert field No4. from dd/mm/yy to yyyymmdd... (5 Replies)
Discussion started by: talk2pawee
5 Replies

9. UNIX for Dummies Questions & Answers

Adding a new field using sed or awk?

I have a bcp file that contains 10 fields. These fields are separated by a tab. How can I add my name as a new field in the 8th position for every record? I've been playing w/ sed and awk but can't seem to figure this out. (3 Replies)
Discussion started by: sasabune
3 Replies

10. Shell Programming and Scripting

Adding field of flatfile by an index.

Hey guys, I was given a task that involved parcing a large file that looked somthing like this... A1-0999999,SMITH,.25 A1-0999999,JOHN,.75 A1-0999999,HELMET,.1.25 A1-0999999,HOOP,.10.25 D1-1212121,SMITH,4.00 D1-1212121,TH,9.00 D1-1212121,MITCH,10.20 D1-1212121,RETAL,3.00 A1-9909555,,3.00... (2 Replies)
Discussion started by: djsal
2 Replies
Login or Register to Ask a Question