Count on grep for more than two values in a row of fixed length file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Count on grep for more than two values in a row of fixed length file
# 1  
Old 02-13-2013
Count on grep for more than two values in a row of fixed length file

I want to get count on number of records in a few folders by running grep command for more than two columns in a row of fixed length file.

suppose if i have a fixed length file has 5 columns and I want to see the record counts for country =can and province = bc and time stamp <= 12 feb 2013 00:00:00 to 13 feb 2013 00:00:00 ? how do I do that?

Code:
empIDProvinceCountryTimeStampStatus
001bccan12022013000000IN
002abcan12022013000001IN
003qccan12022013000003IN
004oncan12022013000003IN
001bccan12022013000004IN

The above query should return me

Code:
count =2
records 
001bccan12022013000000IN
001bccan12022013000004IN

can you please give the script or command to accomplish this query? if possible to output to a file?

thanks,
Moderator's Comments:
Mod Comment
Please use code tags when posting data and code samples!

Last edited by vgersh99; 02-13-2013 at 05:52 PM.. Reason: code tags, please!
# 2  
Old 02-13-2013
Use awk with substr function, here is an example for country & province:
Code:
awk 'NR>1&&substr($0,4,2)=="bc"&&substr($0,6,3)=="can"{c++}END{print c}' file

# 3  
Old 02-13-2013
Quote:
Originally Posted by bipinajith
Use awk with substr function, here is an example for country & province:
Code:
awk 'NR>1&&substr($0,4,2)=="bc"&&substr($0,6,3)=="can"{c++}END{print c}' file

but i do not see the condition for TimeStamp time stamp <= 12 feb 2013 00:00:00 to 13 feb 2013 00:00:00
# 4  
Old 02-13-2013
Quote:
Originally Posted by princetd001
but i do not see the condition for TimeStamp time stamp <= 12 feb 2013 00:00:00 to 13 feb 2013 00:00:00
Yes, because I didn't understand your condition: <= 12022013000000 to 13022013000000

Do you mean <= 13022013000000
# 5  
Old 02-13-2013
Quote:
Originally Posted by bipinajith
Yes, because I didn't understand your condition: <= 12022013000000 to 13022013000000

Do you mean <= 13022013000000
What I meant the records between the following time range
Code:
 
TimeStamp>= 12022013000000and TimeStamp <= 13022013000000

# 6  
Old 02-13-2013
Code:
awk ' NR>1 && substr($0,4,2) == "bc" && substr($0,6,3) == "can" {
        TS = substr($0,9,14) + 0;
        if(TS>=12022013000000&&TS<=13022013000000) {
                R = R RS $0;
                c++;
        }
 } END {
        printf "Count=%d\n", c;
        printf "Records%s", R;
        printf "\n"
}' file

# 7  
Old 02-13-2013
Quote:
Originally Posted by bipinajith
Code:
awk ' NR>1 && substr($0,4,2) == "bc" && substr($0,6,3) == "can" {
        TS = substr($0,9,14) + 0;
        if(TS>=12022013000000&&TS<=13022013000000) {
                R = R RS $0;
                c++;
        }
 } END {
        printf "Count=%d\n", c;
        printf "Records%s", R;
        printf "\n"
}' file


The above code is for only one file, suppose I have more than one folders and i want to search these conditions in each folder and output to a file?

suppose the folder structure is as follows

Code:
 
2013/02/13/file1.txt
2013/02/13/file2.txt
2013/02/12/file1.txt
2013/02/12/file2.txt

Code:
 
PARENT FOLDER = 2013
FIRST CHILD FOLDER = 02
SECOND CHILD FOLDER = 12
 
PARENT FOLDER = 2013
FIRST CHILD FOLDER = 02
SECOND CHILD FOLDER = 13

How do I incorporate this condition as well in above script?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Copy columns from one file into another and get sum of column values and row count

I have a file abc.csv, from which I need column 24(PurchaseOrder_TotalCost) to get the sum_of_amounts with date and row count into another file say output.csv abc.csv- UTF-8,,,,,,,,,,,,,,,,,,,,,,,,, ... (6 Replies)
Discussion started by: Tahir_M
6 Replies

2. Shell Programming and Scripting

Fixed Length file from a SQL script

Hi, I have a DB2 UDB 9.7 SQL script, as follows: I need to pass the script into Unix and generate a fixed length file from this. Can someone kindly provide a script to achieve it? SELECT CAST(COALESCE(CL_ID,'000000000') AS CHAR(9)) AS CL_ID ,STATUS... (5 Replies)
Discussion started by: ebsus
5 Replies

3. UNIX for Dummies Questions & Answers

Length of a fixed width file

I have a fixed width file of length 53. when is try to get the lengh of the record of that file i get 2 different answers. awk '{print length;exit}' <File_name> The above code gives me length 50. wc -L <File_name> The above code gives me length 53. Please clarify on... (2 Replies)
Discussion started by: Amrutha24
2 Replies

4. UNIX for Dummies Questions & Answers

Fixed length file extracting values in columns

How do I extract values in a few columns in a row of a fixed length file? If there are 8 columns and I need to extract values of 2nd,4th and 6 th columns, how do i do that? I used cut command, this I used only for one column. How do I do it more than one column? The below command will give... (1 Reply)
Discussion started by: princetd001
1 Replies

5. Shell Programming and Scripting

Finding multiple column values and match in a fixed length file

Hi, I have a fixed length file where I need to verify the values of 3 different fields, where each field will have a different value. How can I do that in a single step. (6 Replies)
Discussion started by: naveen_sangam
6 Replies

6. Shell Programming and Scripting

how to grep only particular length of numeric values

hi i have two types of file 1. temp.0000000001.data (10 digit numeric) 2. temp.000000001.data (9 digit numeric) i want to search a file which is having 10 digit numeric in between the file name. i use command like this.. ls | grep temp.^*.data but this will give both the files as... (2 Replies)
Discussion started by: somi2yoga
2 Replies

7. UNIX for Dummies Questions & Answers

Convert a tab delimited/variable length file to fixed length file

Hi, all. I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file: 10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783 19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657 And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies

8. UNIX for Dummies Questions & Answers

What the command to find out the record length of a fixed length file?

I want to find out the record length of a fixed length file? I forgot the command. Any body know? (9 Replies)
Discussion started by: tranq01
9 Replies

9. Shell Programming and Scripting

convert fixed length file to CSV

Newbie Looking for a script to convert my input file to delimited text file. Not familier with AWK or shell programing. Below is sample record in my input file and the expected output format. My OS is HPUX 11.23. Thanks in advance for your assistance. tbtbs input file:... (12 Replies)
Discussion started by: tbtbs
12 Replies

10. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies
Login or Register to Ask a Question