Как grep использует начало и конец строки - PullRequest
0 голосов
/ 22 декабря 2019

Я хочу прочитать об одном из вариантов в справочной странице gcc. Так я и сделал man gcc | grep -- '^-c'. Ошибка была troff - cant break line, потому что у меня есть терминал на половине экрана. Но я исправил это с объявлением MANWIDTH=1000 man gcc | grep -- '^-c' (спасибо: Почему это предупреждение "не может быть разбита строка" от grep gcc man page? . Но, к сожалению, эта опция не найдется. Безшаблон begginig (то есть всего -c: полностью: MANWIDTH=1000 man gcc | grep -- '-c', он найдет все вхождения -c, что довольно много, но, в частности, опция, которую я ищу, будет перепутана с бесполезными поисками. Так почему же grep не использует ^ и $ в качестве начала и конца строки? Или это как-то связано с размером моего оконечного окна (то есть сокращается по ширине) = якорьлинии? И как я могу затем выполнить поиск с помощью grep по началу строк без полного экрана терминала?

PS: я не знаю, почему, когда я объявляю переменную MANWIDTH, она не будет сразу применяться с командой man,несмотря на его ценность. То есть, если я сначала объявляю это, а затем пытаюсь что-то укомплектовать (в конце концов, отправлю это в grep для поиска строк), ошибка возникнет снова: troff: warning: can't break line

Как это:

MANWIDTH=1000;
echo $MANWIDTH #output 1000
man gcc | grep -- '^-c'
troff: <standard input>:10635: warning [p 97, 19.0i]: can't break line
...