What does <html> do in a grep command?

2

1

I was wondering what does the <> do in a grep command

  • grep a b c , try to find a in file b and c
  • grep <html> foo?

What does the <> do? Find the HTML tags?

ricedragon

Posted 2011-10-03T21:47:00.213

Reputation: 57

Answers

3

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

user1686

Posted 2011-10-03T21:47:00.213

Reputation: 283 655

1Since ricedragon is new to regular expressions, it is worth pointing out that grep '<html>' foo will not find <html lang="en">. It is often better to use an HTML parser for searching HTML. – RedGrittyBrick – 2011-10-04T09:14:05.283