Кажется, ваш заголовок и вопрос задают разные вещи.Поскольку пара людей уже ответила на ваш заголовок, я отвечу на ваш вопрос.
Насколько я помню, текстовые комментарии %
.Поэтому мы будем искать строку, содержащую \makeindex
без %
перед ней в строке:
grep '^[^%]*\\makeindex' source.tex
#grep -- the program we're running, obviously.
# ' ' -- Single quotes to keep bash from interpreting special chars.
# ^ -- match the beginning of a line
# [ ] -- match characters in the braces.
# ^ -- make that characters not in the braces.
# % -- percent symbol, the character (in the braces) we do not want to match.
# * -- match zero or more of the previous item (non-percent-symbols)
# \\ -- a backslash; a single one is used to escape strings like '\n'.
# makeindex -- the literal string "makeindex"
# source.tex-- Input file
Пример:
$ grep '\\end' file.tex
51:src/file.h\end{DoxyCompactItemize}
52:%src/file.h\end{DoxyCompactItemize}
53:src/%file.h\end{DoxyCompactItemize}
54: %\end{DoxyCompactItemize}
55:src/file.h\end{DoxyCompactItemize}%
$ grep '^[^%]*\\end' file.tex
51:src/file.h\end{DoxyCompactItemize}
55:src/file.h\end{DoxyCompactItemize}%
$