07-11-2012
awk data filtering
I am trying to filter out some data with awk. If someone could help me that would be great. Below is my input file.
Date: 10-JUN-12 12:00:00
B 0: 00 00 00 00 10 00 16 28
B 120: 00 00 00 39 53 32 86 29
Date: 10-JUN-12 12:00:10
B 0: 00 00 00 00 10 01 11 22
B 120: 00 00 00 29 23 32 16 29
Date: 10-JUN-12 12:00:20
B 0: 00 00 00 00 10 02 17 29
B 120: 00 00 35 51 42 66 14
Date: 10-JUN-12 12:00:30
B 0: 00 00 00 00 10 03 61 42
B 120: 00 00 00 44 33 52 21 52
Date: 10-JUN-12 12:00:40
B 0: 00 00 00 00 10 04 11 22
B 120: 00 00 12 87 10 01 13 42
Date: 10-JUN-12 12:00:50
B 0: 00 00 00 00 10 05 15 24
B 120: 00 00 12 87 10 01 13 42
Date: 10-JUN-12 12:01:00
B 0: 00 00 00 00 10 06 11 22
B 120: 00 00 12 87 10 01 13 42
The above input file is one block of date (i.e. field 8 of the B 0: line increments from 00 to 06 then repeats; with Date:, B 0: (except field 8 will be 10 (its 10 in the above input file) or 11) and B 120: lines changing).
So, I would like to find the B 0: line that contains 10 or 11 in field 7 and 00 in field 8 and print the line directly before it (the Date: line) and then print that B 0: line it found. Next, I would like awk to find the B 0: line that contains 10 or 11 in field 7 and 04 in field 8 and print the line directly before it (the Date: line), then print the found B 0: line, then print the line directly after the B 0: line (the B 120: line). Finally, I would like awk to find the found B 0: line that contains 10 or 11 in field 7 and 06 in field 8 and print the line directly before it (the Date: line), then print the found B 0: line, then print the line directly after the found B 0: line (the B 120: line). I would like this repeated for every block of data in the order described (again my input file in the example above only covers one blocks worth).
Ideally, I would also like the following to also occur...but if someone doesn't know how to do it..then I would be more than greatful to have the awk line needed to get the previous paragraph done. From time to time parts of data are missing. Missing data will consist always of 3 lines (Date:, B 0: and B 120: lines). So, its possible that one or more of the search lines may be missing (line B 0: with 10 or 11 in field 7 and 00 in field 8, and/or line B 0: with 10 or 11 in field 7 and 04 in field 8, and or line B 0: with 10 or 11 in field 7 and 06 in field 8). If this is the case I would like awk not to print anything and move on to the next block of data (find the next line b 0: with 10 or 11 in field 7 and 00 in field 8) and begin search and print again.
What I would like for an output file (this pattern would repeat if the input file had more than one block of data):
Date: 10-JUN-12 12:00:00
B 0: 00 00 00 00 10 00 16 28
Date: 10-JUN-12 12:00:40
B 0: 00 00 00 00 10 04 11 22
B 120: 00 00 12 87 10 01 13 42
Date: 10-JUN-12 12:01:00
B 0: 00 00 00 00 10 06 11 22
B 120: 00 00 12 87 10 01 13 42
Hopefully this isn't too confusing....I've try quite a few things and haven't had any luck.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I have following command which tells me File size in GBs which are greater than 0.01GBs recursively in a dir structure.
ls -l -R | awk '{ if ($5/1073741824 >= 0.01) print $9, $5/1073741824 }'
But there are some files whom I dont have enough permissions, after executing this script
gives me... (1 Reply)
Discussion started by: videsh77
1 Replies
2. Shell Programming and Scripting
Hi All,
I have the below input and expected ouput. I need a code which can scan through this input file and if the number in column1 is more than 1 , it will print out the whole line, else it will output "No Re-occurrence". Can anybody help ?
Input:
1 vvvvv 20 7 7 23 0 64
6 zzzzzz 11 5... (7 Replies)
Discussion started by: Raynon
7 Replies
3. UNIX for Dummies Questions & Answers
file1 contain: (this just a small sample of data it may have thousand of lines)
1 aaa 1/01/1975 delhi
2 bbb 2/03/1977 mumbai
3 ccc 1/01/1975 mumbai
4 ddd 2/03/1977 chennai
5 aaa 1/01/1975 kolkatta
6 bbb 2/03/1977 bangalore
program:
nawk '{
idx= $2 SUBSEP $3
arr = (idx in arr) ?... (2 Replies)
Discussion started by: bobo
2 Replies
4. Shell Programming and Scripting
Hello Gurus,
Please help me out of the problem. I ve a input file as below
input clock;
input a; //reset all
input b;
//input comment
output c;
output d;
output e;
input f;
//output comment
I need the output as follows:
\\Inputs (1 Reply)
Discussion started by: user_prady
1 Replies
5. Shell Programming and Scripting
Good day Gurus,
I have a csv file that contains an inventory of active servers. This csv file contains a well over a hundred systems (IBM, SUN, HP). It also contains those systems details. See below for an example
hostA,invver,1.02,20100430
hostA,date,08/30/2010,06:18
hostA,use,"Unknown... (4 Replies)
Discussion started by: LuffyDMonkey
4 Replies
6. Shell Programming and Scripting
Hi ,
i have file with delimiter as "|" and data in Double codes for all fields. how to filter data in a column like awk -F"|" '$1="asdf" {print $0}' test.
ex : "asdf"|"zxcv"
Thanks,
Soma (1 Reply)
Discussion started by: challamsomu
1 Replies
7. Shell Programming and Scripting
Hi
my data is in csv-format ...
...
13/08/2012,16:30,303.30,5.10,3,2,2,1,9360.0,322
13/08/2012,16:40,305.50,5.00,3,2,2,1,12360.0,322
13/08/2012,16:50,319.90,3.80,3,2,1,0,2280.0
13/08/2012,17:00,326.10,3.50,3,2,1,1,4380.0,321
13/08/2012,17:10,333.00,3.80,3,3,1,0,2280.0... (1 Reply)
Discussion started by: IMPe
1 Replies
8. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
my data in csv-format ...
...
13/08/2012,16:30,303.30,5.10,3,2,2,1,9360.0,322... (13 Replies)
Discussion started by: IMPe
13 Replies
9. Shell Programming and Scripting
Hi,
I have some data like seen below.
format : apple(hhmm mm/dd).fruit
apple(2345 03/25).fruit
apple(2345 05/06).fruit
orange(0443 05/02).fruit
orange(0345 05/05).fruit
orange(2134 05/04).fruit
grape(0930 04/24).fruit
grape(2330 03/30).fruit
I need to get the data which are... (1 Reply)
Discussion started by: jayadanabalan
1 Replies
10. Shell Programming and Scripting
Hi Everyone,
I need help on figuring out a way to filter some data that I get back from an API. Im able to get all the data that Im looking for but I would like to know a way for me to filter it better. The data that Im getting back is basically 2 rows of data as seen here.
Row 1 ... (25 Replies)
Discussion started by: TheStruggle
25 Replies
sortm(1mh) sortm(1mh)
Name
sortm - sort messages
Syntax
sortm [ msgs ] [ +folder ] [ options ]
Description
The command sorts all the messages in the current folder into chronological order according to the contents of the Date: fields of the mes-
sages.
By default, sorts all the messages in the current folder. You can select particular messages in the folder by giving a range of messages.
You can also sort messages in another folder by specifying the folder name.
If encounters a message without a Date: field, or if the message has a Date: field that cannot parse, it attempts to keep the message in
the same relative position. However, this does not always work; for instance, if the first message encountered lacks a date which can be
parsed, then it will usually be placed at the end of the messages being sorted.
When complains about a message which it cannot order, it complains about the message number prior to sorting.
Options
-datefield field
Specifies the name of the header field to use when making the date comparison. If you have a special field in each message, such
as Delivery-Date:, then the -datefield switch can be used to tell which field to examine. If you do not give this option, the
default is to use the Date: header field.
-help Prints a list of all the valid options to this command.
-verbose
-noverbose
Displays the general actions that it is taking to place the folder in sorted order. The -noverbose option performs these actions
silently. The default is -noverbose.
The default settings for this command are:
+folder defaults to the current folder
msgs defaults to all
-datefield date
-noverbose
Profile Components
Path: To determine your MH directory
Examples
The following example sorts all the messages in the folder
% sortm +meetings
The next example sorts messages 10-30 in the folder called
% sortm +test 10-30
Files
The user profile.
See Also
folder(1mh)
sortm(1mh)