I was wondering what does the <> do in a grep command
grep a b c
, try to finda
in fileb
andc
grep <html> foo
?
What does the <>
do? Find the HTML tags?
When inside quotes...
grep '<html>' foo
grep "<html>" foo
...it does exactly that: find a <html>
tag inside the foo
file.
grep
and egrep
use POSIX regular expressions, which are described in the manual page of regex
(7) – basic for grep
, extended/modern for egrep
. Neither version treats <
or >
specially.
When not inside quotes, however, it doesn't do anything useful.
grep <html> foo
grep < html > foo
Most commonly used shells will treat the above equally: run command grep
with no arguments, reading from file named html
, writing to file named foo
. But this won't work, because there is no "pattern" to be given to grep
, so you'll get an error message (and an empty foo
file).
grep '<html>' foo
will not find <html lang="en">
. It is often better to use an HTML parser for searching HTML.
Oct 4, 2011 at 9:14