Results 1 to 2 of 2
Hi, I'm trying to extract the sender id from a fairly large number of files and am having trouble assigning variables from a file. Here is what I have so ...
- 11-18-2010 #1Just Joined!
- Join Date
- Nov 2010
- Posts
- 2
awk help needed
Hi, I'm trying to extract the sender id from a fairly large number of files and am having trouble assigning variables from a file. Here is what I have so far, (which is fairly kludgy I know, but it's been some years since I've done any scripting or programming, and I find that I have lost the knack to a large degree).
grep -r "LOCAL(sdubois)" /var/CommuniGate/SystemLogs/2010-11-16* > test
awk -f sender test > test2
sed 's/re-enqueue//' test2 | sed 's/record//' > test3
sort test3 | uniq > test4
***********
more sender
BEGIN {
FS=" "
}
{ print $4}
***********
What this does is to grab all lines for user sdubois from all files in the specified directories, strips out the field that I need that has the message number in it, removes the strings "re-enqueue" and "record", sorts the results of that and removes duplicates, and leaves me with the message numbers in file test4.
I need one more function to go back through those same files and extract the sender for each of those messages from these lines using the message numbers from test4:
10:50:38.907 2 QUEUE([15425307]) from <ali@xignite.com>, 11309 bytes
The 8 digit number in the brackets are the message numbers.
I feel sure that this whole thing can be done more efficiently than this lame attempt, but any help would be appreciated.
- 11-18-2010 #2Just Joined!
- Join Date
- Nov 2010
- Posts
- 2
Actually, I figured out the variable problem myself. If someone could please tell me how to tell this function what file to search in, I'd be good to go. I can't figure out where to put the name of the search path.
awk '{
while (getline > 0) {
{var=$1}
{$3==search} search=var
{print search}
}
}' test4
When I run this, it prints the contents of test 4, same as when I tell it to print var. This makes sense to me, since I told search=var.
If I add this string at the very end, it starts printing out the contents of those files instead.
/var/CommuniGate/SystemLogs/2010-11-16*
Where should that string go so that the function uses the strings from test4 to search those files?


Reply With Quote
