Visit Our UNIX and Linux User Community


How to read each file grep a value from that?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting How to read each file grep a value from that?
# 1  
Old 10-23-2017
How to read each file grep a value from that?

Hi Team,

in /tmp folder i have thousands of log files i want to read each file and grep a value called "Calling This".

Each logfile name is different but it ends with .log.

How can i achieve this?

Please excuse if i did any mistake by not following forum standards. I will surely follow if i insert any code.
# 2  
Old 10-23-2017
Please provide information on your attempts to resolve.

Until so, we will refrain from sharing any guidance.

The purpose of this Board is the assist users in solving their problems. We are not a coding service. Further, we are not a homework service - and sometimes posts appear to be an attempt to have someone solve a school assignment.

Finally, we urge all members of the Forum to NOT post a solution to this question until effort to resolve is demonstrated.
This User Gave Thanks to joeyg For This Post:
# 3  
Old 10-23-2017
Below are the steps i did

Code:
while read filename; do grep -Hi 'Calling ' done

This User Gave Thanks to darling For This Post:
# 4  
Old 10-23-2017
Quote:
Originally Posted by darling
Below are the steps i did
Code:
while read filename; do grep -Hi 'Calling ' done

Hello darling,

Thanks for showing us your efforts, as mentioned by Joeyg please always spend sometime while posting any question, provide more information(eg--> your O.S name, sample Input_file and expected output_file in code tags).
If you want to search a specific string in all the .txt files and want to print only those file names which have them inside it, then following may help you in same.
Code:
find /tmp -type f -name "*.log" -exec grep -l "Calling this" {} \+

kindly give it a try and do let us know how it goes then(in detailed manner please).

Thanks,
R. Singh
# 5  
Old 10-23-2017
Quote:
Originally Posted by RavinderSingh13
Hello darling,

Thanks for showing us your efforts, as mentioned by Joeyg please always spend sometime while posting any question, provide more information(eg--> your O.S name, sample Input_file and expected output_file in code tags).
If you want to search a specific string in all the .txt files and want to print only those file names which have them inside it, then following may help you in same.
Code:
find /tmp -type f -name "*.log" -exec grep -l "Calling this" {} \+

kindly give it a try and do let us know how it goes then(in detailed manner please).

Thanks,
R. Singh

Thanks Singh,

It is giving me the output of the files.

command

Code:
find /tmp/S -type f -name "*.log" -exec grep -l "Calling appalert" {} \+

Code:
/tmp/S/BmmRaiseAlert.sh.201710221859.31036.logfile.log
/tmp/S/BmmRaiseAlert.sh.201710131507.32473.logfile.log
/tmp/S/BmmRaiseAlert.sh.201710190037.17027.logfile.log

Linux - OS

Last edited by Scrutinizer; 10-23-2017 at 04:17 PM.. Reason: quote tags changed to CODE tags
# 6  
Old 10-23-2017
If all of the files are in a single directory (not spread out among subdirectories), you could try the following first:
Code:
cd /tmp
grep -FHi 'Calling appalert' *.log

or, if you just want the names of files containing that string (with a case insensitive match):
Code:
cd /tmp
grep -Fli 'Calling appalert' *.log

These might file with "argument list too long" errors depending on how many thousands of files you have, but it is easy to try it. And, if it works, it will hundreds or thousands of times faster that performing a grep on each file individually. If they won't work, you'll know quickly.

Note that I added a -F option to grep. Searching for fixed strings (even if you're doing a case-insensitive match), is faster than going through the extra complexity of matching regular expressions.

If all of the log entries use the same case, dropping the -i option will also make it run faster.
This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 10-23-2017
The grep -l "Calling appalert" gives the pathnames of the files that have a line with Calling appalert.
Do you want something else?
Then give an example: a sample of an input file with a matching and a non-matching line, and the expected output.

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Need help for faster file read and grep in big files

I have a very big input file <inputFile1.txt> which has list of mobile no inputFile1.txt 3434343 3434323 0970978 85233 ... around 1 million records i have another file as inputFile2.txt which has some log detail big file inputFile2.txt afjhjdhfkjdhfkd df h8983 3434343 | 3483 | myout1 |... (3 Replies)
Discussion started by: reldb
3 Replies

2. UNIX for Beginners Questions & Answers

Read a file and send mail based on grep

Hi All, I am having a job and I need to send email when the job is running. On any other case (success,fail) I don't needed to send email. I check with BMC they told they dont have that in the version I am using. So I created a dependent job and grepped for the status and sent email. My... (1 Reply)
Discussion started by: arunkumar_mca
1 Replies

3. UNIX for Dummies Questions & Answers

Piping grep into awk, read the next line using grep

Hi, I have a number of files containing the information below. """"" Fundallinfo 6.3950 14.9715 14.0482 """"" I would like to grep for Fundallinfo and use it to read the next line? I ideally would like to read the three numbers that follow in the next line and... (2 Replies)
Discussion started by: Paul Moghadam
2 Replies

4. Shell Programming and Scripting

read a file for input and grep in another file

Hi, I'm trying to read a fille into a loop and grep for a string and print the last field of the string in the second file. Then redirect the output to another file but keeping the output in the same order as the original file. I've tried using the following but the ouput from this does not... (3 Replies)
Discussion started by: elmesy
3 Replies

5. Shell Programming and Scripting

read from file and grep using shell

Hi Guys, I have a small script which greps for the username reading from stdinput. ./file.sh pattern pattern=$1 grep "blah blah.*$pattern" /home/user/log.txt Instead of typing the pattern everytime i want to read the pattern from a file inside the shell script and execute the... (5 Replies)
Discussion started by: Irishboy24
5 Replies

6. UNIX for Dummies Questions & Answers

Strange error: grep does not read from file

I have two files file1.txt angie mary susan file2.txt angie blond mary brunnet susan red christine blackI want to get this output angie blond mary brunnet susan redI write grep --file=file1.txt file2.txtand i get no results i also wrote cat file1.txt|while read line... (19 Replies)
Discussion started by: FelipeAd
19 Replies

7. UNIX for Advanced & Expert Users

how to grep/read a file inside compressed tgz without extract?

Hi all, I would like to ask whether in Unix shell/perl have any functions or command to allow grep/cat/read a file inside compressed .tgz without extract it? I know we can tar tvf a compressed tgz but this only allow we read the path/filename contained inside the tarball. If we want to read... (3 Replies)
Discussion started by: mayshy
3 Replies

8. Shell Programming and Scripting

grep vs do while read

I have inherited the UNIX scripting duties for our team and have only been at this for a few months so I apologize for what may be a simple question. We have a script we are reworking. Part of this script takes a parameter and reads a csv file. When it finds a matching line, the cut command is... (4 Replies)
Discussion started by: 15a0
4 Replies

9. Shell Programming and Scripting

read in variable data from another file - grep

Hello! I think this should be an easy solution. I have a large file with many fields of data. The first field has a unique identifier (a subject number) for every record for a chunk of data. Something like this: There were ten experimental conditions (ec), but the ec is identified by only... (11 Replies)
Discussion started by: ccox85
11 Replies

10. Shell Programming and Scripting

Read file then grep the line

Dear all, I am reading a file that has 1 column. While reading I must find the line references from the another file. The following shell doesn't works. Please help #!/bin/bash while read filename; do grep ${filename} fs_full.dat >> unprocfull.dat; done < unproc.dat But when... (2 Replies)
Discussion started by: mr_bold
2 Replies

Featured Tech Videos