Using grep for a particular field


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Using grep for a particular field
# 1  
Old 06-13-2019
Using grep for a particular field

Hi ,

I have a file as shown below :
Code:
1836       21000    01052019             BH90P.TEMP.DA1836.FTP             W            NULL                                    S		
1836       22000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/21000                              S		
1836       23000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/22000                              S		
1836       24000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/23000                              S		
1836       25000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/24000;1801/24000;2248/24000        S		
1836       26000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/25000                              S				
1836       27000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/26000                              S		
1836       ETL31    01052019             BH90P.TEMP.DA1836.FTP             W            1836/27000                              S		
1836       ETL32    01052019             BH90P.TEMP.DA1836.FTP             W            1836/ETL31                              S

When i use egrep "1836/2400|1836/2500|1836/2700" <filename> it will print below mentioned line:
Code:
1836       25000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/24000;1801/24000;2248/24000        S		
1836       26000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/25000                              S			
1836       ETL31    01052019             BH90P.TEMP.DA1836.FTP             W            1836/27000                              S

i want that it will not print "
Code:
1836       25000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/24000;1801/24000;2248/24000        S

" if further values 1801/24000 and 2248/24000 is not taken during egrep. But if all the values are present during egrep then it will print the line.

Moderator's Comments:
Mod Comment Select text before pressing the "code" button

Last edited by krishnaswarnkar; 06-13-2019 at 10:36 AM..
# 2  
Old 06-13-2019
Make it

Code:
egrep " (2248/24000|1836/25000|1836/27000) " file

, then.For your second condition, you'll need to specify the entire pattern:

Code:
egrep "1836/24000;1801/24000;2248/24000|(1836/24000|1836/25000|1836/27000) " file
1836       25000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/24000;1801/24000;2248/24000        S        
1836       26000    01052019             BH90P.TEMP.DA1836.FTP             W            1836/25000                              S                
1836       ETL31    01052019             BH90P.TEMP.DA1836.FTP             W            1836/27000                              S


Last edited by RudiC; 06-13-2019 at 12:29 PM..
# 3  
Old 06-13-2019
Match only in field #6, match the whole field:
Code:
awk '$6 ~ ("^(" search ")$")' search="1836/24000|1836/25000|1836/27000" file

Compare with the following, matching a whole ";" separated sub field:
Code:
awk '(";" $6 ";") ~ (";(" search ");")' search="1836/24000|1836/25000|1836/27000" file

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to grep/awk only particular field?

I have a file like this. I want to filter values for only the particular day. Source file: # cat /tmp/1 Name Mon Tue Wed Thu Fri Sat Sun A Y B Y C Y D Y F Y G Y Y # For ex: I want to... (4 Replies)
Discussion started by: thomasraj87
4 Replies

2. Shell Programming and Scripting

Match and Grep the nearest value in last field

Gents I have this input file file1 (uniq records) 54503207851 170211240 54503207911 170210837 54503208111 170215105 54503208112 170215210 54655210011 170223140 54655210091 170223738 54655210172 170224355 54655210251 170224741 54655210331 170225039 54655210411 170225505 54655210492... (13 Replies)
Discussion started by: jiam912
13 Replies

3. UNIX for Dummies Questions & Answers

Grep based on first field

I want to grep based on first column and print all the columns. for eg. root 12344 /sh root 33389 /bash oracle 87378 /tech/oracle oracle 26367 /tmp/oracle Now I want to grep based on user "root" in first column and print like below. root ... (14 Replies)
Discussion started by: baladelaware73
14 Replies

4. Shell Programming and Scripting

How to grep a single field from a line?

hi, i have a text file with some fields. file.txt aaa|bbb|ccc|1-sh|2-sh|5-sh ddd|eee|fff|1-sh|4-sh i am selecting a line using grep command using the combination of 1st 3 column. grep "aaa|bbb|ccc" file.txt output: aaa|bbb|ccc|1-sh|2-sh|5-sh now i want to cut a field from this... (5 Replies)
Discussion started by: Little
5 Replies

5. UNIX for Dummies Questions & Answers

grep lines in a file that have only one field

Hello. How does one grep lines in a file that have only one field? AAA BBB CCC DDD AAA CCC Is is possible to grep "DDD" becuase it has only one field? Thanks. ---------- Post updated at 08:03 PM ---------- Previous update was at 07:25 PM ---------- I found it, thank you! awk 'NF... (2 Replies)
Discussion started by: jimmyf
2 Replies

6. UNIX for Dummies Questions & Answers

unable to grep the reqd field

hi all, i have a data sm thg like this 28504 0 abc 148782859 42 101M nhmmmm ilopo abc 2345432 i want to get only the field which is just aftr abc i,e., 148782859, 2345432 i have used grep /abc\t/ filename to get that but its not working can any 1 help me out (5 Replies)
Discussion started by: anurupa777
5 Replies

7. Shell Programming and Scripting

grep for a particular field

Hi All, I have the following in a text file #---- Set Silent License Acceptance #---- Accept license agreement: remove # sign #---- example: LICENSE_ACCEPTED=true #---- if the LICENSE_ACCEPTED is anything other then true the installation will exit #---- no log... (2 Replies)
Discussion started by: dbashyam
2 Replies

8. Shell Programming and Scripting

Help with grep at specific field of a file

hi, I would like to search for a specific string at a specific line in a file and would like to know the count of it. eg: samp.txt ABC 1234 BELL HNZ 4567 RING NNN 5673 BELL Please help with the command to find the count of BELL in the above file samp.txt at the specific line 10 with... (7 Replies)
Discussion started by: techmoris
7 Replies

9. UNIX for Dummies Questions & Answers

how to grep from specific field

the file has several date fields.for example, #2, #3,and #5 are date fields. I want grep year '2002' just within #2 field and get all the rows which content year '2002' in the #2 field. is it possible to do this? how to do it? Thanks (2 Replies)
Discussion started by: tiff-matt
2 Replies

10. UNIX for Dummies Questions & Answers

Change field separator of grep from : to space

Hi, All, I wonder how to change the field separator of grep from : to space when use grep to display. for example when I use grep -e 'pattern1' -e 'pattern2' -n filename to find patterns, it use : to separate patterns, but I want to use blank space. is there an option I can set to... (2 Replies)
Discussion started by: Jenny.palmy
2 Replies
Login or Register to Ask a Question