Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 539
  • Last Modified:

grep between 3rd and 4rth comma

Hi

Text files look like this :

689:2006/07/12 01:08:06,5,espresso,1492197335,star_schema_log,0.198698,0.394908,0.00448759090909091,88,1.46666666666667
689:2006/07/12 01:08:06,5,espresso,1492197336,star_schema_log,0.198698,0.394908,0.00448759090909091,88,1.46666666666667
689:2006/07/12 01:08:06,5,espresso,1492197337,star_schema_log,0.198698,0.394908,0.00448759090909091,88,1.46666666666667

I wanted to grep only word star_schema_log between 3rd and 4rth comma ..... how can i do this!

Regards
Anand
0
amahajan1981
Asked:
amahajan1981
  • 2
  • 2
  • 2
  • +5
3 Solutions
 
zephyr_hex (Megan)DeveloperCommented:
use grep to get the lines you need (if you need to select only certain lines from a file), and then use awk to parse the lines.
0
 
zephyr_hex (Megan)DeveloperCommented:
or, use can use "cut" along with grep... grep will select the lines you need and cut can parse the lines
0
 
amahajan1981Author Commented:
i dont want to select lines all lines have "," as delimeter...

i just wanted to get a word from 3rd and 4rth ","

I am a beginner in unix...just started to read abt awk and sed

regards
Anand  
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
grsteedCommented:
Not sure exactly what you're looking for. You say "I wanted to grep only word star_schema_log between 3rd and 4rth comma"  

The word "star_schema_log" shows up between the 4th and 5th comma.

If you want the value between the 3rd and 4th comma (4th field) , how about this,

cat file |cut -d "," -f  4

This will give you a list of the values in the 4th field. If you want to look for something specific, add "|grep whatever" to that command.


Cheers,

Gary
0
 
rockiroadsCommented:
You could try AWK


cat yourfile | awk -F','  '{print $4}'


I think its $4 to get between 3rd and 4th, if not, try $3 or $5


passing in -F is what delimiter to use, in this case its a comma

it then puts the values into argument variables
$1 refers to the value up to the 1st comma
$2 refers to the value between 1st and 2nd comma
and so on

0
 
tacticalvehicleCommented:
as commented rockiroads,

AWK tool is best for you

awk -F,  ' { print $4 }' /pathto/file.log

# this is only for for better perfomance cat with PIPE isnt nescessary in this case becouse AWK is able read log file directly
# ( I also forgot this feature :)

if you want more fields...

awk -F,  ' { print $3"   "$4 }' /pathto/file.log  
# output is will be
#
#espresso   1492197335
#espresso   1492197336
#espresso   1492197337


also with AWK you cas count this fileds or sort or else
I hope now is for you clear

90% points this solution is for rockiroads ;)
0
 
rockiroadsCommented:
just 90%? ha, only kidding tacticalvehicle. Im so just to piping output from cat, I forget u can do the way u did

thanks for the recommendation though, appreciated!
0
 
tfewsterCommented:
Print all lines where the 4th field matches a pattern:

awk -F"," '/ $4 == "star_schema_log" {print $0}' /pathto/file.log
0
 
bpmurrayCommented:
The simplest solution is as someone above suggested: cut does it simply and correctly. You tell it that your delimiter is the comma, and that you want field number 5:
   cut -d, -f5 file.txt

In fact, cut is really clever, in that you can pick out only the fields you want, e.g. to grab fields 1, 5, 6 and 7, you can do:
   cut -d, -f1,5-7 file.txt
0
 
ahoffmannCommented:
# quick&dirty
awk -F,  '{print $4}' /path/to/file.log|grep pattern

# the awk way
awk -F,  '/'pattern/'{print}' /path/to/file.log
0
 
amahajan1981Author Commented:
Thnks guys for ur help!!

regards
Anand
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
  • 2
  • 2
  • +5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now