Re: Escaping grep
"Michael F. Stemper" <[email protected]> Sat, 17 Apr 2021 11:06:34 -0500
| Newsgroups | alt.comp.lang.shell.unix.bourne-bash |
|---|---|
| Organization | A noiseless patient Spider |
| Message-ID | <[email protected]> |
On 17/04/2021 08.36, bodiccea wrote: > On Sun, 21 Feb 2021 15:35:55 -0600, "Michael F. Stemper" > <[email protected]> wrote: > >> I wanted to see which LaTeX packages I was using for a particular >> project, so I did: >> >> user@host$ grep -h "\\usep" *tex | sort | uniq >> % \usepackage{array} % for math mode columns in tabular >> % \usepackage{graphicx} >> % \usepackage{longtable} >> % \usepackage{mathrsfs} % for mathscr >> % \usepackage{tikz-cd} % for commutative diagrams >> \usepackage{amsmath} % for implication and align* >> \usepackage{amssymb} % for black-board set names >> \usepackage{fancyhdr} >> \usepackage{geometry} >> \usepackage{parskip} >> user@host$ >> >> However, that showed unused packages as well. So I tried >> anchoring my grep to the beginning of the line, and got: >> >> user@host$ grep -h "^\\usep" *tex | sort | uniq >> user@host$ >> >> Why isn't this working? What am I overlooking? How >> should I have said it? > > There is no issue with the grep expression itself. The problem is > with bash handling of strings: You use " (double quotes) around > your expression, asking bash to interpret the contents. > > bash will replace "^\\usep" with "^\usep" *before passing it to grep*. > grep then will remove special meaning for following char (u) - no > special meaning in this case. > The result is that grep will just look for lines starting with "u". Thank you. I've been using various *IX variants for three decades now and I still can't get the single-quote v double-quote distinction through my head. > You have 2 solutions: > 1) use quotes instead of double quotes: '^\\usep', so that bash does > not change anything. Works fine, lasts a long time! > Sorry for late answer, I just joined this group. > > And yes, it is a pure 'bash' question, not a 'grep' question as I saw in > another answer :) Thought so! -- Michael F. Stemper Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.