LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Newbie (https://www.linuxquestions.org/questions/linux-newbie-8/)
-   -   grep syntax error? (https://www.linuxquestions.org/questions/linux-newbie-8/grep-syntax-error-728062/)

sl33p 05-23-2009 04:30 PM

grep syntax error?
 
Hi guys,

I'm studying for LPI, and got to solve this question:

Quote:

Find out which file contains the following entry:
root:x:0:0:root:/root:/bin/bash
So far I've tried out using two solutions to list the required files out of the whole system (/):

1)
Code:

grep -H -I -i -n -R 'root:x:0:0:root:/root:/bin/bash' / > /var/tmp/output 2> /var/tmp/error
2)
Code:

find / -type f | xargs grep -H -I -i -n 'root:x:0:0:root:/root:/bin/bash' > /var/tmp/output 2> /var/tmp/error
The -H and -n options preface each match with the file name and line number of each match, respectively. The -i option ignores case. -I (capital "I") skips binary files.

The problem: both commands doesn't finish.. They hang and I have to kill the processes after 15 minutes...

So, how can I solve it? I am expecting 'probably': /etc/passwd inside /var/tmp/output and a lot of denial permission errors inside /var/tmp/error. Right?

Thanks in advance!
sleep

jamescondron 05-23-2009 04:38 PM

Why not let the command complete? You're on the right track

eco 05-23-2009 04:40 PM

Just lost all that I typed so here is the short version... ;)

The following worked for me (as root)
Code:

# grep -Rl 'root:x:0:0:root:/root:/bin/bash' /
/etc/passwd
/etc/passwd.org

and if you want to use find... try this
Code:

# find / -type f -exec grep -l 'root:x:0:0:root:/root:/bin/bash' {} \;
/etc/passwd.org
/etc/passwd

Running as root will assure you you san all files on your box.

Hope this helps

NeddySeagoon 05-23-2009 04:44 PM

sl33p,

Reduce the problem space. grep in /etc, not /
Add the options in one at a time.

The grep works properly here but its very slow (I tested on /etc) if you want to process every file on the filesystem maybe 15 min isn't long enough.

The fact the the command runs at all, shows the syntax is correct.


All times are GMT -5. The time now is 05:59 PM.