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 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):
Code:
INPUT_FILE_T="SH?*???????????????US.*"
while IFS='' read -r f
do case "$f" in
($INPUT_FILE_T) printf "%s\n" "$f";;
esac
done < PCF_STARHUB_20130625_1
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:
It could be as simple as quoting your search string:-
Code:
grep -h "${INPUT_FILE_T}" PCF_STARHUB_20130625_1
It's an odd search string though. From the man page I have on RHEL 6.1, I have:-
Code:
A regular expression may be followed by one of several repetition operators:
? The preceding item is optional and matched at most once.
* The preceding item will be matched zero or more times.
+ The preceding item will be matched one or more times.
{n} The preceding item is matched exactly n times.
{n,} The preceding item is matched n or more times.
{,m} The preceding item is matched at most m times.
{n,m} The preceding item is matched at least n times, but not more than m times.
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:-
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)