Find Multiple words in a file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find Multiple words in a file
# 1  
Old 05-24-2013
Find Multiple words in a file

Hi all,
I have trouble in finding the multiple word in .txt file. Please help me with any solution.
I have 10,000 .txt files and in each file i have to search specific word but more than one, like
(data, machine learning, clustering) and all these keywords should be case insensitive because inside file same word is in caps and non caps as well. And the main objectives is to copy that file to another folder if the key word is present.

thanking you in advance.

Regards
# 2  
Old 05-24-2013
create a file call it patterns.

Code:
machine
learning
data
cluster

Code:
cd /path/to/many/files
for fname in *
do
    fgrep -Fq patterns  $fname
    [ $? -eq 0 ]  && mv $fname  /path/to/another/place/${fname}
done

This User Gave Thanks to jim mcnamara For This Post:
# 3  
Old 05-24-2013
Your requirement is not yet clear.
The following wants at least 2 matching lines, where a match is any of the word1|word2|word3.
For the copy action we put a loop around it.
Code:
for file in *.txt
do
 if [ -f "$file" ] &&
  [ `egrep -ic 'data|machine learning|clustering' "$file"` -gt 1 ]
 then
  echo cp "$file" /another/folder
 fi
done

This might give "too many arguments". Then use find, feeding a read loop:
Code:
find . \! -name . -prune -type f -name "*.txt" |
while read file
do
 if [ `egrep -ic 'data|machine learning|clustering' "$file"` -gt 1 ]
 then
  echo cp "$file" /another/folder
 fi
done
The

\! -name . -prune prevents find from visiting sub folders.
This User Gave Thanks to MadeInGermany For This Post:
# 4  
Old 05-24-2013
This should do the trick according to your specs:
Code:
cp $(egrep -il 'data|machine learning|clustering' *) new-folder

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grep multiple words in a file with help of fixed string switch

I have multiple strings in a file which have special character $, when i search strings by ignoring $ with \ using single quotes it returns empty results. My search strings are set char_1($lock) and set new_char_clear_3($unlock) I tried searching with but it returns empty results.However... (3 Replies)
Discussion started by: g_eashwar
3 Replies

2. Shell Programming and Scripting

sed parser behaving strange on replacing multiple words in multiple files

I have 4000 files like $cat clus_grp_seq10_g.phy 18 1002 anig_OJJ65951_1 ATGGTTTCGCAGCGTGATAGAGAATTGTTTAGGGATGATATTCGCTCGCGAGGAACGAAGCTCAATGCTGCCGAGCGCGAGAGTCTGCTAAGGCCATATCTGCCAGATCCGTCTGACCTTCCACGCAGGCCACTTCAGCGGCGCAAGAAGGTTCCTCG aver_OOF92921_1 ... (1 Reply)
Discussion started by: sammy777888
1 Replies

3. UNIX for Dummies Questions & Answers

Find a file with common initials and last words

Hi, I have a requirement like i have to find out files and remove them on a daily basis. The files are generated as abc_jnfn_201404230004.csv abc_jnfo_201404230004.csv abc_jnfp_201404230004.csv abc_jnfq_201404230004.csv abd_jnfn_201404220004.csv abe_jnfn_201404220004.csv i want to... (1 Reply)
Discussion started by: Mohammed_Tabish
1 Replies

4. Shell Programming and Scripting

Grep multiple words in a single file

Hello All, I'm a newbie/rookie in Shell scipting. I've done oracle export of a table using Export utility. When I do export, it generates 2 files. 1> .dmp file 2> .dmp.log file. In .dmp.log file I have to search for a sentence which goes like '0 records have been inserted' and then... (2 Replies)
Discussion started by: samfisher
2 Replies

5. UNIX for Dummies Questions & Answers

grep command to find multiple strings in multiple lines in a file.

I want to search files (basically .cc files) in /xx folder and subfolders. Those files (*.cc files) must contain #include "header.h" AND x() function. I am writing it another way to make it clear, I wanna list of *.cc files that have 'header.h' & 'x()'. They must have two strings, header.h... (2 Replies)
Discussion started by: ritikaSharma
2 Replies

6. Shell Programming and Scripting

Shell script to find out words, replace them and count words

hello, i 'd like your help about a bash script which: 1. finds inside the html file (it is attached with my post) the code number of the Latest Stable Kernel, 2.finds the link which leads to the download location of the Latest Stable Kernel version, (the right link should lead to the file... (3 Replies)
Discussion started by: alex83
3 Replies

7. Emergency UNIX and Linux Support

Find two words and join together in one file

Hi, I have a huge text file like below , I need to select only lines having line Fatal joined with id. like below i want the line to be Fatal Error for input record 25 is id = 543523. Waiting for your help. -----Original Message----- Acceptance with warnings for input record 24. 001 tag... (13 Replies)
Discussion started by: umapearl
13 Replies

8. Linux

Simplified find command to find multiple file types

Hi, I'm using the following command to find the multiple requierd file types and its working fine find . -name "*.pl" -o -name "*.pm" -o -name "*.sql" -o -name "*.so" -o -name "*.sh" -o -name "*.java" -o -name "*.class" -o -name "*.jar" -o -name "*.gz" -o -name "*.Z" -type f Though... (2 Replies)
Discussion started by: vickramshetty
2 Replies

9. Shell Programming and Scripting

Script to find all the files that contain any of the words present in another file

Hi All, I am new to UNIX and shell scripts and also new to this forum. I need a script to find all the files in a directory that contain any of the strings present in another file. Please provide me the script or if you could provide pointers to any link in this forum it would be helpful.... (4 Replies)
Discussion started by: tsanthosh
4 Replies

10. Shell Programming and Scripting

how to find capital letter names in a file without finding words at start of sentence

Hi, I want to be able to list all the names in a file which begin with a capital letter, but I don't want it to list words that begin a new sentence. Is there any way round this? Thanks for your help. (1 Reply)
Discussion started by: kev269
1 Replies
Login or Register to Ask a Question