I am facing a problem while using the grep command in shell script. Actually I have one file (PCF_STARHUB_20130625_1) which contain below records.
And I have a pattern which is stored in one variable (INPUT_FILE_T), and want to search the pattern from the file (PCF_STARHUB_20130625_1). For that I have used below command
The output of above command is coming as below
Problem is that only one entry is showing in output (It should contain two entries) output should come like below
Is there any technique except grep please tell me.
Please help me on this issue.
Last edited by sumit.vedi1988; 06-25-2013 at 07:11 AM..
Reason: formating
The grep utility evaluates basic regular expressions. Unfortunately, (SH?*???????????????US.*) is a filename matching pattern; not a BRE.
To search for lines in a file that match a pattern matching expression, try the following shell script using any shell that recognizes basic Bourne shell syntax (such as ksh and bash):
Furthermore, since you didn't quote the expansion of $INPUT_FILE_T in your grep command, the shell expanded that variable into a list of matching filenames in the current directory before calling grep; so (assuming that the file PCF_STARHUB_20130625_1 contained a list of some of the files in the current directory) the command that you ran was expanded by the shell to:
which treated SH_5.55916.00.00.100029_20130601_0001_US.csv.gz|349|1700116234 as a basic regular expression that happens to match itself when looking in the file PCF_STARHUB_20130625_1 and, fortunately, doesn't seem to have matched any lines in the file named SH_5.55916.00.00.100038_20130601_0001_US.csv.gz|199|2099616349.
To use grep instead of a loop in the shell, you could translate the filename matching pattern SH?*???????????????US.* to a corresponding BRE (SH..*...............US[.].* or more succinctly SH.\{16,\}US[.].*) and use:
Note that the double quotes in the above grep command are crucial to keep the shell from trying to expand the BRE as a filename matching pattern
It could be as simple as quoting your search string:-
It's an odd search string though. From the man page I have on RHEL 6.1, I have:-
So that you mean that you are looking for a record that starts (doesn't have to be at the beginning of the line) with an S, then the H is optional and then I get confused.
Are you trying to use the ? as a single character each time?
I would think a better search string would be more like:-
to represent Start of line, SH, then any 3 characters, then US. The remainder of the line can be ignored.
Do either of these meet your needs?
Robin
Liverpool/Blackburn
UK
Last edited by rbatte1; 06-25-2013 at 10:59 AM..
Reason: Grammar
I have this fileA
TEST FILE ABC
this file contains ABC;
TEST FILE DGHT this file contains DGHT;
TEST FILE 123
this file contains ABC,
this file contains DEF,
this file contains XYZ,
this file contains KLM
;
I want to have a fileZ that has only (begin search pattern for will be... (2 Replies)
One more question:
I want to grep "COS_12_TM_4 pattern from a file look likes :
"COS_12_TM_4" " ];I am taking scan_out as the input from the user.
How to search "COS_12_TM_4" in the file which is corresponds to scan_out (12 Replies)
I 'm writing a script to search particular strings from log files. The log file contains lines start with *. The file may contain many other lines start with *. I need to search a particular line from my log file. The grep command is working in command line , but when i run my script, Its printing... (7 Replies)
Hello,
I have a bunch of zip files like
SS_SAMPLE_101_123.zip
SS_101_123.zip
SS_SAMPLE_121_345.zip
SS_SAMPLE_222_678.zip
SS_123_890.zip
SS_.zip
The 'ls' should search and list the files such as SS_101_123.zip and SS_123_890.zip alone. Could you please guide me with this.... (5 Replies)
Hi,
I am trying to do pattern search using grep command. But i donot know what mistake i'm doing. I am not getting the expected Result. could any one please help me out?
$ cat b.ksh
AasdjfhB
57834B
86234B
472346B
I want to print the line which is starting with either A or 8 and... (10 Replies)
Hi
I am facing the below problem.
I have set of lines in which i have to search for only the line which matches with the pattren "/" only.
input:-
/*+ some text */
/*+ some text */
/* Remove rows from a table of survey results. */
/* Add a survey respondent's name and answers. */
/*... (7 Replies)
Hi
Is there any way GREP command can return word and not complete line.
My file has following data:
Hello Everyone I am NitinrajSrivastava
Hi Friends Welcome VrajSrivastava
I am using grep 'raj' which is returning me complete line.However I want only the word having keyword 'raj'.
Required... (11 Replies)
Hello everyone,
I have been trying to get a list of all files containing a line of this type:
};#followed by anything
with any spaces (0 or more or 0 or more tabs) before the } and between each of the characters.
I have been trying this :
grep '*}*;*#*' *.c
but I have not been fully... (1 Reply)