Sponsored Content
Top Forums Shell Programming and Scripting List all file names that contain two specific words. Post 302429133 by drl on Saturday 12th of June 2010 07:46:48 PM
Old 06-12-2010
Hi.

Observations:

1) alister is quite right. His expression will indeed do the same as mine (if within the entire path). It may be useful to know that GNU find shares aspects of regular expressions with the grep family.

2) Misinterpretation is best avoided by the questioner providing examples.

Best wishes ... cheers, drl

---------- Post updated at 18:46 ---------- Previous update was at 18:24 ----------

Hi.

If we are looking at the contents of the files, then my preference is to look at the content only once. Here's a script that does that. It uses a command that is available in Debian repositories.
Code:
#!/usr/bin/env bash

# @(#) s3	Demonstrate finding files containing two specific characters.
# See: http://www.incava.org/projects/glark/

# Uncomment to run script as external user.
# export PATH="/usr/local/bin:/usr/bin:/bin"
# Infrastructure details, environment, commands for forum posts. 
set +o nounset
pe() { for i;do printf "%s" "$i";done; printf "\n"; }
pl() { pe;pe "-----" ;pe "$*"; }
LC_ALL=C ; LANG=C ; export LC_ALL LANG
pe ; pe "Environment: LC_ALL = $LC_ALL, LANG = $LANG"
pe "(Versions displayed with local utility \"version\")"
c=$( ps | grep $$ | awk '{print $NF}' )
version >/dev/null 2>&1 && s=$(_eat $0 $1) || s=""
[ "$c" = "$s" ] && p="$s" || p="$c"
version >/dev/null 2>&1 && version "=o" $p find glark
set -o nounset

# Sample data files, using head & tail as a last resort.
pl " Files containing data \"A\" or \"B\":"
pe
specimen t* \
|| { pe "(head/tail)"; head -n 5 t*; pe " ||"; tail -n 5 t*; }

pl " Results of finding A and B contained in files, glark:"
find . -type f |
egrep -v '[sr]' |	# don't look at scripts
xargs glark -l --and=-1 "A" "B" --end-of-and

exit 0

producing:
Code:
% ./s3

Environment: LC_ALL = C, LANG = C
(Versions displayed with local utility "version")
OS, ker|rel, machine: Linux, 2.6.26-2-amd64, x86_64
Distribution        : Debian GNU/Linux 5.0 
GNU bash 3.2.39
find (GNU findutils) 4.4.0
glark, version 1.8.0

-----
 Files containing data "A" or "B":

Whole: 5:0:5 of 3 lines in file "t1"
A
1
B

Whole: 5:0:5 of 3 lines in file "t2"
B
2
A

Whole: 5:0:5 of 1 lines in file "t3"
AB

Whole: 5:0:5 of 1 lines in file "t4"
BA

Whole: 5:0:5 of 2 lines in file "t5"
A
b

Whole: 5:0:5 of 2 lines in file "t6"
a
B

-----
 Results of finding A and B contained in files, glark:
./t4
./t3
./t2
./t1

If glark is not available to your package manager, see the URL in the script ... cheers, drl
 

10 More Discussions You Might Find Interesting

1. 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

2. UNIX for Dummies Questions & Answers

Search File for Specific Words

I have a file that contains the following: Mon Dec 3 15:52:57 PST 2o007: FAILED TO PROCESSED FILE 200712030790881200.TXT - exit code=107 Tue Dec 4 09:08:57 PST 2007: FAILED TO PROCESSED FILE 200712030790879200a.TXT - exit code=107 This file also has a lot more stuff since it is a log file.... (2 Replies)
Discussion started by: mevasquez
2 Replies

3. AIX

find for specific content in file in the directory and list only file names

Hi, I am trying to find the content of file using grep and find command and list only the file names but i am getting entire file list of files in the directory find . -exec grep "test" {} \; -ls Can anyone of you correct this (2 Replies)
Discussion started by: madhu_Jagarapu
2 Replies

4. Shell Programming and Scripting

To fetch specific words from a file

Hi All, I have a file like this,(This is a sql output file) cat query_file 200000029 12345 10001 0.2 0 I want to fetch the values 200000029,10001,0.2 .I tried using the below code but i could get... (2 Replies)
Discussion started by: girish.raos
2 Replies

5. UNIX and Linux Applications

Reading a file for specific words

Hi I have a script where the user calls it with arguments like so: ./import.sh -s DNSNAME -d DBNAME I want to check that the database entered is valid by going through a passwd.ds file and checking if the database exists there. If it doesn't, the I need to send a message to my log... (4 Replies)
Discussion started by: ladyAnne
4 Replies

6. Shell Programming and Scripting

Search a test file for specific words

I have the need to search a text file from my unix script to determine if it contains the strings of: 'ERROR' and/or 'WARNING'. By using Grep I can search the file and return a where one of these strings exists. Like this: cat myfile.txt | grep ERROR Output: PROCESS ERROR HERE ... (3 Replies)
Discussion started by: buechler66
3 Replies

7. Shell Programming and Scripting

find specific file names and execute a command depending on file's name

Hi, As a newbie, I'm desperate ro make my shell script work. I'd like a script which checks all the files in a directory, check the file name, if the file name ends with "extracted", store it in a variable, if it has a suffix of ".roi" stores in another variable. I'm going to use these two... (3 Replies)
Discussion started by: armando110
3 Replies

8. UNIX for Beginners Questions & Answers

Non-root script used search and list specific key words

Hy there all. Im new here. Olso new to terminal & bash, but it seams that for me it's much easyer to undarsatnd scripts than an actual programming language as c or anyother languare for that matter. S-o here is one og my home works s-o to speak. Write a shell script which: -only works as a... (1 Reply)
Discussion started by: Crisso2Face
1 Replies

9. UNIX for Advanced & Expert Users

List all file names that contain two specific words. ( follow up )

Being new to the forum, I tried finding a solution to find files containing 2 words not necessarily on the same line. This thread "List all file names that contain two specific words." answered it in part, but I was looking for a more concise solution. Here's a one-line suggestion... (8 Replies)
Discussion started by: Symbo53
8 Replies

10. Shell Programming and Scripting

How to replace some specific words from file?

I have the file like this. cat 123.txt <p> <table border='1' width='90%' align='center' summary='Script output'> <tr><td>text </td> </tr> </table> </p> I want to replace some tags and want the output like below. I tried with awk & sed commands. But no luck. Could someone help me on this? ... (4 Replies)
Discussion started by: thomasraj87
4 Replies
lookbib(1)						      General Commands Manual							lookbib(1)

Name
       indxbib, lookbib - build inverted index for a bibliography, lookup bibliographic references

Syntax
       indxbib database...
       lookbib database

Description
       The  makes  an inverted index to the named databases (or files) for use by and These files contain bibliographic references (or other kinds
       of information) separated by blank lines.

       A bibliographic reference is a set of lines, constituting fields of bibliographic information.  Each field starts on a line beginning  with
       a  ``%'',  followed  by	a key-letter, then a blank, and finally the contents of the field, which may continue until the next line starting
       with ``%''.

       The command is a shell script that calls and The first program, truncates words to 6 characters, and maps upper case  to  lower	case.	It
       also  discards words shorter than 3 characters, words among the 100 most common English words, and numbers (dates) < 1900 or > 2000.  These
       parameters can be changed.  The second program, inv, creates an entry file (.ia), a posting file (.ib), and a tag file (.ic),  all  in  the
       working directory.

       The command uses an inverted index made by to find sets of bibliographic references.  It reads keywords typed after the ``>'' prompt on the
       terminal, and retrieves records containing all these keywords.  If nothing matches, nothing is returned except another ``>'' prompt.

       It is possible to search multiple databases, as long as they have a common index made by In that case, only the first argument given to	is
       specified to

       If  does  not  find the index files (the .i[abc] files), it looks for a reference file with the same name as the argument, without the suf-
       fixes.  It creates a file with a '.ig' suffix, suitable for use with It then uses this fgrep file to find references.  This method is  sim-
       pler to use, but the .ig file is slower to use than the .i[abc] files, and does not allow the use of multiple reference files.

Files
       x.ia, x.ib, x.ic, where x is the first argument, or if these are not present, then x.ig, x

See Also
       addbib(1), lookbib(1), refer(1), roffbib(1), sortbib(1),

																	lookbib(1)
All times are GMT -4. The time now is 12:45 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy