08-26-2009
Problem while using grep (multi-level) with the space-separated filepath.
Hi,
I've been trying to use grep to find out all the files which have two particular patterns in it (both pattern1 AND pattern2). I have a script to do the same, in which I'm getting the output of the first grep (with -l option) which contains the list of file paths and I'm trying to search for pattern2 in this file path. Things are fine as long as the file path has no space-separated path in it.
My script looks like this:
#!/bin/sh
path=`grep -l 'pattern1' /home/user1/*`
#Say the output of the same was ----> "/home/user1/new file"
grep -l 'pattern2' $path
The second grep above fails coz the value of $path is treated as 2 different paths (/home/user1/new AND file).
So I used sed to replace all " " with "\ ". For this I had to write the output to a file. When I "cat" the output of the sed formatted file as the filepath to my 2nd grep expression, it's still failing to get me the correct results.
Is my problem related to how "cat" deals with files or is there something else I must be doing?
If a file.txt has the following text in it:
/home/user1/new\ file
the following grep command fails (it consider that path as two different paths) in command-prompt too:
grep 'pattern' `cat file.txt`
Any light on this will be of great help!
Thanks
NJ
9 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Taking inputs in the script which is space separated and passing this to a function and i have assigned like below
And then when I use for loop for the inputs i got from the user, it is taking only the first argument.
Enter Names : Bala Sundar Sridhar
read names
namesCheck $names
function... (7 Replies)
Discussion started by: balamv
7 Replies
2. Homework & Coursework Questions
1. The problem statement, all variables and given/known data:
Hi all,
I've got a huuuuuuge problem with understanding this new concept of multi-paging. I really tried to research but i could not find anything significant. I've been trying to understand this for 4 days and i cannot. The question... (0 Replies)
Discussion started by: snowboarder
0 Replies
3. Homework & Coursework Questions
Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted!
1. The problem statement, all variables and given/known data:
Basically, the prompt is make a makefile with various sub makefiles in their respective subdirectories. All code... (1 Reply)
Discussion started by: Tatl
1 Replies
4. Shell Programming and Scripting
I want to sort like below
Suppose few lines in a file is like this
systemid:ABC messagedestination:batchxpr replytoqname: myca
systemid:BCD messagedestination:realtime replytoqname: myca
systemid:ABC messagedestination:realtime replytoqname: eac
systemid: BCD messagedestination:mqonline... (1 Reply)
Discussion started by: srkmish
1 Replies
5. Shell Programming and Scripting
Hi, I have a very large file I want to extract lines from. I'm hoping Grep can do the job, but I'm running into problems.
I want to return all lines that match a pattern. However, if the following line of a matched line contains the word "Raw" I want to return that line as well.
Is this... (3 Replies)
Discussion started by: redbluefish
3 Replies
6. Shell Programming and Scripting
How do I loop thru space separated values in a variable?
I hate to use very complicated counter increment logic for this kind of simple problem.
Expected result(using ksh)
$>echo "aaa bbbb cccc" | <looping code here>
var=aaa
var=bbbb
var=cccc
$>echo "aaa bbbb cccc" | while IFS=" "... (12 Replies)
Discussion started by: kchinnam
12 Replies
7. UNIX for Dummies Questions & Answers
Hi,
I have a large number of files which are written as csv (comma-separated values).
Does anyone know of simple sed/awk command do achieve this?
Thanks!
---------- Post updated at 10:59 AM ---------- Previous update was at 10:54 AM ----------
Guess I asked this too soon. Found the... (0 Replies)
Discussion started by: lost.identity
0 Replies
8. UNIX for Dummies Questions & Answers
Hi
I have been racking my (limited) brains to get this to work without success
I have a file output which is a list of lists - ie a single column of data that is separated by space into sub lists below - I need to both split this so that each list is in a separate column (eg tab or semicolon... (8 Replies)
Discussion started by: Manchesterpaul
8 Replies
9. Shell Programming and Scripting
Hi,
I am having a file say list1 with a output like below
jun 12 18:23
may 20 18:23
Now i want to pass the above two values into for loop,I have written a script like this.
#!/bin/bash
a=`cat list1`
for i in $a
do
echo "HI $i"
done
expected output:
HI jun 12 18:23 (3 Replies)
Discussion started by: sumanthupar
3 Replies