How to do ls -l on results of grep and find?


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers How to do ls -l on results of grep and find?
# 1  
Old 06-17-2012
How to do ls -l on results of grep and find?

Hi,

Am running the command below to search for files that contains a certain string.

Code:
grep -il "shutdown" `find . -type f -mtime -1 -print` | grep "^./scripts/active"

How do I get it to do a ls -l on the list of files? I tried doing
Code:
ls -l `grep -il "shutdown" `find . -type f -mtime -1 -print` | grep "^./scripts/active"`

and that does not work. The command just hangs there.

I was hoping to use find -exec but I can't get it to do exec and grep at the same time. FYI, the grep "^./scripts/active" is 'coz that is the directory that am interested in.

This is what I end up doing. Hoping someone can advise a one-liner

Code:
for file in $(grep -il "shutdown" `find . -type f -mtime -1 -print` | grep "^./scripts/active")
do
   ls -l $file
done

Any advise much appreciated. Thanks in advance.

Last edited by Scrutinizer; 06-17-2012 at 03:51 AM.. Reason: Add what I did - mod: extra code tags
# 2  
Old 06-17-2012
find

Hi,

Try this one,
Code:
find . -type f -mtime -1 -print -exec grep -il 'shutdown' {} \; | grep "^./scripts/active"

Cheers,
Ranga:-)
# 3  
Old 06-17-2012
Hi Ranga,

Thanks for your reply.

Tried that and it didn't work. It seems to print all the files and not the ones that just contains the text that am looking for.

Also, I've managed to find the files that am looking for using grep -il "shutdown" `find . -type f -mtime -1 -print` | grep "^./scripts/active", but I want to a ls -l of them so I can see the timestamp of the files.
# 4  
Old 06-17-2012
Awk

Hi,

Try this one,
Code:
find . -type f -mtime -1 -print | grep "^./scripts/active" | xargs  -I '{}' ls -l {}

Cheers,
Ranga:-)
# 5  
Old 06-17-2012
Quote:
Originally Posted by newbie_01
How do I get it to do a ls -l on the list of files? I tried doing
Code:
ls -l `grep -il "shutdown" `find . -type f -mtime -1 -print` | grep "^./scripts/active"`

and that does not work. The command just hangs there.
Yep, but try this:

Code:
ls -l $(grep -il "shutdown" `find . -type f -mtime -1 -print | grep "^./scripts/active"`)

The option -print, instead of -print0, can easily lead to errors. You pipe the output to grep. What if you have a file with a space in its name, for example?

Besides, I don't understand very well why you're using
Code:
find . ... | grep "^./scripts/active"

instead of:
Code:
find ./scripts/active ...

So, putting all toghether, I'd try:

Code:
ls -l `find ./scripts/active -type f -mtime -1 -print0 | xargs -0 grep -il "shutdown"`

or, which is the same:
Code:
ls -l $(find ./scripts/active -type f -mtime -1 -print0 | xargs -0 grep -il "shutdown")


Last edited by Lem; 06-18-2012 at 06:05 PM..
# 6  
Old 06-17-2012
Code:
find ./scripts/active -type f -mtime -1 -exec grep -il 'shutdown' {} \; -ls | grep -v '^\.'

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Cannot get results from grep command

Hi, i have a file hello.log which as several line that look like the below 2015-12-07 09:46:56 0:339 120.111.12.12 POST /helloWorld 2015-12-07 09:46:57 0:439 122.111.12.12 POST /helloWorld .... when i grep expecting to see results like the below. ... (6 Replies)
Discussion started by: mohtashims
6 Replies

2. Shell Programming and Scripting

How to concatenate grep results?

hi, let's say we have input in files test1.txt, test2.txt, text3.txt ... ... ... ('...' means more files & lines not just 'dots') test1.txt has: A B C D ... ... ... test2.txt has A B C D ... ... ... (4 Replies)
Discussion started by: msonoth
4 Replies

3. Shell Programming and Scripting

How to analyse results of grep

Hi all, I'm working with a peice of software that runs on Linux that allows planning trips in cars through maps. This software has different variations depending on the type of car, e.g. BMW, Audi, Hyundai, etc... Each variation has a dependency on common external components that are not... (1 Reply)
Discussion started by: emoshaya
1 Replies

4. Shell Programming and Scripting

Grep no results

Hello guys, I have been looking around but can't find the answer to my problem: If the grep command displays no results, print "no results have been found" and increment x. But if the grep command find something, do nothing. if echo "no results have been found $x" x=`expr $x + 1 `... (3 Replies)
Discussion started by: Benou
3 Replies

5. Shell Programming and Scripting

Adding grep'd results in a variable

Here is one I am baffled with; I have not used unix for a while and now that I am back it has been fun remembering and I have enjoyed it, for the most past. this is in ksh. I need to search in a file for the line with X1 and cut columns 20-25, put them into a variable, added them (dollar... (3 Replies)
Discussion started by: CougarMutt
3 Replies

6. UNIX for Dummies Questions & Answers

Acting on results from a grep command

Hi, I am currently reading a tar file and searching for a particular word using grep e.g. Plane. At the moment, if a sentence is found with the word "Plane" the sentence itself is piped to another file. Here is the code i am using; for jar in 'cat jar_file.tar'; do tar -tvf... (3 Replies)
Discussion started by: crunchie
3 Replies

7. UNIX for Dummies Questions & Answers

How to display first 7 char of grep results?

My file contains the following: uat2000.aspclient.active=true uat2001.aspclient.active=true uat2002.aspclient.active=true uat2003.aspclient.active=true uat2004.aspclient.active=false uat2005.aspclient.active=false uat2006.aspclient.active=false uat2007.aspclient.active=false... (8 Replies)
Discussion started by: kthatch
8 Replies

8. UNIX for Dummies Questions & Answers

List grep results

Hi I need to search for matching strings in a database and I want to print out all files that matches in "detail", which means that I want the output to contain datum of last saving. I only get the grep function tp print the actual file names which is not enough since the database is to large... (14 Replies)
Discussion started by: slire
14 Replies

9. Shell Programming and Scripting

How to refine results of grep -p

I need help to further reduce the output shown below. I want to be able to only return the paragraph where the 'Database alias' is exactly equal to DBIHP. I do not want the other paragraphs being shown below. $ echo $dbalias DBIHP $ db2 list db directory|grep -p 'Database alias ... (2 Replies)
Discussion started by: priceb
2 Replies

10. Shell Programming and Scripting

Multiple Grep Results - Formatting

Hello, Perhaps someone here can help with this. I'd like to grep a plain text file for a word and output each line containing a word found to a seperate line instead of back to back. Examples: Basic command: cat file.txt > grep -i CAT > results.txt file.txt: The cat said meow The... (7 Replies)
Discussion started by: sysera
7 Replies
Login or Register to Ask a Question