Check if a string exists in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Check if a string exists in a file
# 1  
Old 07-23-2015
Check if a string exists in a file

bash in RHEL 6.3

I have these 2 files with strings.

Code:
$ cat someStrings.txt
LOGICAL1
HUNGARY2
PENGUIN2
MOBILE
GUITAR1
MOUSE1
$

Code:
$ cat checkIF.txt
PENGUIN
MOBILE
$

I need to search for strings in someStrings.txt file that matches the patterns in checkIF.txt file.
The strings in someStrings.txt sometimes end with a number . But, during pattern match, this number should be ignored.
If there is at least 1 match, just print PENGUIN exists in someStrings.txt file.

Logic will look like

Code:
if
grep -c PENGUIN someStrings.txt > 0
then print 'PENGUIN exists in someStrings.txt file'
then proceed with pattern search in the file
fi

So, with the sample data given above, my expected output will be

PENGUIN exists in someStrings.txt file ( PENGUIN2 exists in someStrings.txt file is fine too )
MOBILE exists in someStrings.txt file

Any idea how I could do this ?
# 2  
Old 07-23-2015
Hello kraljic,

Could you please try following and let me know if this helps.
Code:
awk 'FNR==NR{gsub(/[[:digit:]]/,X,$0);A[$0];next} ($1 in A){print $1 " exists in file " ARGV[1]}' somestrings.txt checkIF.txt

Output will be as follows.
Code:
PENGUIN exists in file somestrings.txt
MOBILE exists in file somestrings.txt

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 3  
Old 07-23-2015
If the -H option for grep is available on your system, try
Code:
grep -Hf checkIF.txt someStrings.txt

This User Gave Thanks to RudiC For This Post:
# 4  
Old 07-23-2015
Thank you Ravinder, Rudic

One last question : How can I grep only those lines that end with a number ?
ie. in the below file, all lines except the string MOBILE should be returned.

Code:
$ cat someStrings.txt
LOGICAL1
HUNGARY2
PENGUIN2
MOBILE
GUITAR1
MOUSE1

$
# 5  
Old 07-23-2015
Hello kraljic,

Could you please try following and let me know if this helps. Sorry didn't test it though because I am travelling as of now, hope this helps.
Code:
awk '($NF ~ /[[:digit:]]$/)' Input_file

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 6  
Old 07-23-2015
Or:
Code:
grep '[[:digit:]]$' someStrings.txt

This User Gave Thanks to Don Cragun For This Post:
# 7  
Old 07-23-2015
Quote:
Originally Posted by RavinderSingh13
Hello kraljic,

Could you please try following and let me know if this helps.
Code:
awk 'FNR==NR{gsub(/[[:digit:]]/,X,$0);A[$0];next} ($1 in A){print $1 " exists in file " ARGV[1]}' somestrings.txt checkIF.txt

Output will be as follows.
Code:
PENGUIN exists in file somestrings.txt
MOBILE exists in file somestrings.txt

Thanks,
R. Singh
Note: Even though this will work with the sample at hand, since it is only the last digits that need to be ignored, an anchor ($)should be used. Also, to ignore any kind of spaces and make it more robust, $1 should be used rather than $0, so instead of
Code:
gsub(/[[:digit:]]/,X,$0)

try:
Code:
sub(/[[:digit:]]+$/,X,$1)

This User Gave Thanks to Scrutinizer For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Check if file exists

I need to check whether a file exists and has been changed. The file should contain a specific string. The file should also have been changed within the last ten seconds. How do I do that? (3 Replies)
Discussion started by: locoroco
3 Replies

2. Shell Programming and Scripting

To check if file exists

Hi, I have the below code written. However I am not getting the desired output I am checking if the particular path has file in it. #!/bin/bash ls -l /IRS2/IRS2_ODI/INFILE/*LS* 1>/dev/null 2>/dev/null if then echo $? echo "File Exists" fi ... (3 Replies)
Discussion started by: Shanmugapriya D
3 Replies

3. Shell Programming and Scripting

How to check more than 1 file specified files exists?

Hi all, One of my script crated created 2 files in a dirs Output.log and Output.tmp. Now in another script i need to check if both of the above mentioned files are present in a directory or not. I know to check one file but need to check both the files. Anyone could please tell me how... (3 Replies)
Discussion started by: girijajoshi
3 Replies

4. Shell Programming and Scripting

Check if file exists or not

Hi, I want to check if the file exists or not in the directory. i am trying below code but not working. File="/home/va59657/Account_20090213*.dat" echo "$File" if ]; then echo "file found" else echo "file not found" fi However i am getting file not found even if file exits as... (5 Replies)
Discussion started by: Vivekit82
5 Replies

5. Shell Programming and Scripting

How to check if the file exists in directory?

Hi Gurus, I have a requests to find if all the file in the filelist exist in certain directory. example: my filelist abc def ddd cde afg how can I find these 5 files exists at director /home/abc Thanks in advance (7 Replies)
Discussion started by: ken6503
7 Replies

6. Shell Programming and Scripting

File exists, but cannot be opened.How to check- whether it could be opened to read when it exists

Hi #Testing for file existence if ; then echo 'SCHOOL data is available for processing' else echo 'SCHOOL DATA IS NOT AVAILABLE FOR PROCESSING' : i wrote a script, where it begins by checking if file exists or not. If it exists, it truncates the database... (2 Replies)
Discussion started by: rxg
2 Replies

7. Shell Programming and Scripting

how to check to see if a file exists?

I want to write a script to see if various files exist. What I want to do is have the script search in various directories if a file exist, and if not, then output something like "/path/file does not exist". I don't actually know of how to check and see if a file exists or not. What I have in mind... (2 Replies)
Discussion started by: astropi
2 Replies

8. Shell Programming and Scripting

SFTP check if file exists

I lookifn for a way to SFTP a file based on the presence of a flag file . The logic is some thing like this in shelling terms IF ]; then download file.DDMM.dat FI The above is just the way of interpreting the logic. Just want to add that i do not have SSh access to the remote... (2 Replies)
Discussion started by: phpsnook
2 Replies

9. Shell Programming and Scripting

Script to check file exists

Hi, I am trying to write a script which checks if any file exists with "*.log" or "*.out" in Directory below is the code #------------------ path=/abd/xyz/ if ; then echo "Good" else echo "Failure" fi #-------------------------- its always going to else part and printing... (8 Replies)
Discussion started by: ch33ry
8 Replies

10. Shell Programming and Scripting

Check to see if a file exists?

Hi. I'd like to have an IF-Then-Else statement where I can check to see if a file exists? We have the Bourne Shell by default. I'm looking for the syntax to do something like this: if myfile.txt exists then ...my code else ...my code end if Any help would be greatly... (5 Replies)
Discussion started by: buechler66
5 Replies
Login or Register to Ask a Question