Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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?

share|improve this question
add comment

1 Answer

up vote 3 down vote accepted

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

share|improve this answer
1  
Since 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 Oct 4 '11 at 9:14
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.