You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.6 KiB
81 lines
3.6 KiB
4 years ago
|
Find all files with extension .py and exec permissions, grep only rows that contain *return* word.
|
||
|
|
||
|
|
||
|
[source.sh]
|
||
|
----
|
||
|
find /usr/share -name "*.py" -type f -executable -exec grep -Hnsw "return" {} \;
|
||
|
|
||
|
|
||
|
search for files in a directory hierarchy
|
||
|
|
||
|
-name pattern
|
||
|
Base of file name (the path with the leading directories removed) matches shell pattern pattern.
|
||
|
The metacharacters (`*', `?', and `[]') match a `.' at the start of the base name (this is a
|
||
|
change in findutils-4.2.2; see section STANDARDS CONFORMANCE below). To ignore a directory and
|
||
|
the files under it, use -prune; see an example in the description of -path. Braces are not
|
||
|
recognised as being special, despite the fact that some shells including Bash imbue braces with a
|
||
|
special meaning in shell patterns. The filename matching is performed with the use of the
|
||
|
fnmatch(3) library function. Don't forget to enclose the pattern in quotes in order to protect
|
||
|
it from expansion by the shell.
|
||
|
|
||
|
type c
|
||
|
File is of type c:
|
||
|
|
||
|
b block (buffered) special
|
||
|
|
||
|
c character (unbuffered) special
|
||
|
|
||
|
d directory
|
||
|
|
||
|
p named pipe (FIFO)
|
||
|
|
||
|
f regular file
|
||
|
|
||
|
l symbolic link
|
||
|
|
||
|
s socket
|
||
|
|
||
|
|
||
|
-exec command ;
|
||
|
Execute command; true if 0 status is returned. All following arguments to find are taken to be
|
||
|
arguments to the command until an argument consisting of `;' is encountered. The string `{}' is
|
||
|
replaced by the current file name being processed everywhere it occurs in the arguments to the
|
||
|
command, not just in arguments where it is alone, as in some versions of find. Both of these
|
||
|
constructions might need to be escaped (with a `\') or quoted to protect them from expansion by
|
||
|
the shell. See the EXAMPLES section for examples of the use of the -exec option. The specified
|
||
|
command is run once for each matched file. The command is executed in the starting directory.
|
||
|
There are unavoidable security problems surrounding use of the -exec action; you should use the
|
||
|
-execdir option instead.
|
||
|
|
||
|
grep searches the named input FILEs (or standard input if no files are named, or if a single hyphen-minus
|
||
|
(-) is given as file name) for lines containing a match to the given PATTERN. By default, grep prints
|
||
|
the matching lines.
|
||
|
|
||
|
print lines matching a pattern
|
||
|
|
||
|
-H, --with-filename
|
||
|
Print the file name for each match. This is the default when there is more than one file to
|
||
|
search.
|
||
|
|
||
|
-n, --line-number
|
||
|
Prefix each line of output with the 1-based line number within its input file. (-n is specified
|
||
|
by POSIX.)
|
||
|
|
||
|
-s, --no-messages
|
||
|
Suppress error messages about nonexistent or unreadable files. Portability note: unlike GNU grep,
|
||
|
7th Edition Unix grep did not conform to POSIX, because it lacked -q and its -s option behaved
|
||
|
like GNU grep's -q option. USG-style grep also lacked -q but its -s option behaved like GNU grep.
|
||
|
Portable shell scripts should avoid both -q and -s and should redirect standard and error output
|
||
|
to /dev/null instead. (-s is specified by POSIX.)
|
||
|
|
||
|
-w, --word-regexp
|
||
|
Select only those lines containing matches that form whole words. The test is that the matching
|
||
|
substring must either be at the beginning of the line, or preceded by a non-word constituent
|
||
|
character. Similarly, it must be either at the end of the line or followed by a non-word
|
||
|
constituent character. Word-constituent characters are letters, digits, and the underscore.
|
||
|
|
||
|
----
|
||
|
|
||
|
|
||
|
|