combine data of 2 files by variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting combine data of 2 files by variable
# 1  
Old 02-18-2009
combine data of 2 files by variable

my first post ... please be gentle.
I have been working on a script to get info out of mysql. Its a support ticket system database OTRS. I can write the subject of open tickets to a text file with a unique user id.

I also have a text file with the unique user id, username and email adres. I gues it is possible to combine these files so i can mail the open support tickets to the responsible support engineer. I just cant figure out how to do so.

Example of the open support tickets text file:

id ticket subject
1 10000302 Server SYS volume out of disk space
1 10000646 User synchronisation aborted
1 10000684 GWGuardian fallback / defect powersupply
2 10000693 Set up a ftp server
5 10000719 Firewall port
5 10000750 Defect SAN controller

The user file looks like this:

id user email
1 Some User Some.user@local.nl
2 Other User Other.user@local.nl
3 xxx xxx xxx.xxx@local.nl
etc

I would like to send a list once a week with open support tickets to each engieer. Can anybody point me in the right direction or have a example for this?

many thanks in advance

Last edited by dicenl; 02-18-2009 at 08:57 AM..
# 2  
Old 02-18-2009
Hi and welcome,

Can you provide an example of the desired output?
Do you want separated files per user id?

Regards
# 3  
Old 02-18-2009
the desired output would be a per user email with a subject like 'open tickets' and as body the ticket id's with the subject. i would like to run it in cron so it can run once a week. if thats not possible separate files would do.

the engineers need to do there work and i'm responsible the work is done in time. they dont always have time to log in to the ticket system so when i can send the open tickets to them they at least know there is work to be done.
# 4  
Old 02-18-2009
You can try this (not tested):

Code:
awk 'NR==FNR{a[$1]=$NF;next}
a[$1]{b[$1]=1;print $0 > $1}
END{for(i in a){if(b[i]){system("uuencode " $1 " | mail "a[i])}}}
' users_file opentickets_file

If it works as expected you can place the command in a script and start it with a cronjob.

Use nawk or /usr/xpg4/bin/awk on Solaris.

Regards
# 5  
Old 02-18-2009
Ok tnx. that's some code i wouldnt have come up with Smilie still lots to learn! i will try it tonight at home. i'll let you know if it works!

(i use SuSE Linux)
# 6  
Old 02-18-2009
i just tested the script. it did work for a bit. When i run the script it kinda hangs. when i kill it with CRTL-C i got this message:

Code:
(Interrupt -- one more to kill letter)
No message, no subject; hope that's ok

i got this 3 times (5 tickets for 3 users) in the script directory i now do have 3 seperate files

Code:
-rw-r--r-- 1 root root  72 Feb 18 18:51 1
-rw-r--r-- 1 root root  71 Feb 18 18:51 2
-rw-r--r-- 1 root root  36 Feb 18 18:51 3
-rw-r--r-- 1 root root 179 Feb 18 18:37 opentickets.txt
-rwxr-xr-x 1 root root 193 Feb 18 18:42 script.sh
-rw-r--r-- 1 root root  73 Feb 18 18:36 users.txt

the files do contain the right info for the right engineer

Code:
OES2-SRV1:/data/test # cat 1
1     1000350     First ticket 
1     1000359     Second ticket

I just dont realy understand the awk options yet so that makes it a bit hard for me to troubleshoot. is there a way to see some logging output like in /var/log/messages ?
# 7  
Old 02-18-2009
One correction on the code. I suppose uuencode works for you, otherwise you can alter the mail command (a[i] = mail address and id = i):

Code:
awk 'NR==FNR{a[$1]=$NF;next}
a[$1]{b[$1]=1;print $0 > $1}
END{for(i in a){if(b[i]){system("uuencode " i " | mail "a[i])}}}
' users_file opentickets_file

Regards
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Automate splitting of files , scp files as each split completes and combine files on target server

i use the split command to split a one terabyte backup file into 10 chunks of 100 GB each. The files are split one after the other. While the files is being split, I will like to scp the files one after the other as soon as the previous one completes, from server A to Server B. Then on server B ,... (2 Replies)
Discussion started by: malaika
2 Replies

2. UNIX for Dummies Questions & Answers

Stack data from multiple files into one, with variable column files

Hello Gurus, Im new to scripting. Got struck with a file merge issue in Unix. Was looking for some direction and stumbled upon this site. I saw many great posts and replies but couldnt find a solution to my issue. Greatly appreciate any help.. I have three csv files -> Apex_10_Latest.csv,... (1 Reply)
Discussion started by: wamshi
1 Replies

3. Shell Programming and Scripting

Combine data out of 3 files into one new file

Hi, How can I combine the data of of three files into one new file? I try to give as much informations as possible. The three existing files are called file1 file2 and file3 the new file should named output_combined. The size of the files will be around 900 words/lines each .. but always... (5 Replies)
Discussion started by: MyMemberName
5 Replies

4. Shell Programming and Scripting

Combine data from two files base on uniq data

File 1 ID Name Po1 Po2 DD134 DD134_4A_1 NN-1 L_0_1 DD134 DD134_4B_1 NN-2 L_1_1 DD134 DD134_4C_1 NN-3 L_2_1 DD142 DD142_4A_1 NN-1 L_0_1 DD142 DD142_4B_1 NN-2 L_1_1 DD142 DD142_4C_1 NN-3 L_2_1 DD142 DD142_3A_1 NN-41 L_3_1 DD142 DD142_3A_1 NN-42 L_3_2 File 2 ( Combination of... (1 Reply)
Discussion started by: pareshkp
1 Replies

5. Shell Programming and Scripting

Combine/omit data from 2 files

i made a script on my own. this is for the inventory to all of my AWS servers, and i run it to all of my servers to get the hostname, please look at file2. Then i need some data in file3 as well,. i need to combine them #cat file1 192.10.1.41 server.age.com ###### 192.10.0.40 ssh cant... (10 Replies)
Discussion started by: kenshinhimura
10 Replies

6. Shell Programming and Scripting

How to combine the data of files?

I have a main file as follows aaa 3/2 = 1.5 aba 55+6 = 61 aca 67+8 = 75 hjk 3+3 = 67 ghd 66+30 = 96 ghj 99-3 = 96 ffg 67+3 = 70 I have 4 sub files named sub1, sub2, sub3, sub4 content of sub1 aaa 23+5 = 28 hjk 45+6 = 51 ghd 40-20 = 20 ... (2 Replies)
Discussion started by: jackevan
2 Replies

7. Shell Programming and Scripting

How to combine data from 2 file ? How to print ?

Dear friends, I am just trying to print data from 2 file,namely file_1.txt and file_1.dat (specific column of ROW 1) file_1.txt 12 13 14 15 99 AMC 69 36 89 12 13 14 15 99 AMC 69 84 -12 12 13 14 ... (6 Replies)
Discussion started by: nex_asp
6 Replies

8. Shell Programming and Scripting

get data from files combine them to a file

hi people; this is my file1.txt:192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.4 ... this is my file2.txt:portnames usernames maxusercap ... i want to write to file3.txt:l ./getports 192.168.1.1 'get all;l+;get . portnames;l-' l ./getports 192.168.1.1 'get all;l+;get . usernames;l-'... (4 Replies)
Discussion started by: gc_sw
4 Replies

9. Shell Programming and Scripting

How to combine data files using for loop

Hi, I have 5 files basically;namely file1.txt situated each at folder A to E respectively. I would like to extract out third column from each of these file1.txt from folder A to folder E. Also, I wanted to extract the first and second column which are common. In other words, e.g ... (6 Replies)
Discussion started by: ahjiefreak
6 Replies

10. UNIX for Dummies Questions & Answers

Recover data from 2 files then combine

Using dd or similar tools to recover data from 2 damaged cdroms, I need a way to then combine the 2 files, 1 from each cd, and make a good file: this all result from finding that certain cd's tops scratch easily even when using the "proper" cd markers, hence making the file useless, however the... (1 Reply)
Discussion started by: saint65
1 Replies
Login or Register to Ask a Question