我想阅读gcc
手册页中的一个选项。所以我做了man gcc | grep -- '^-c'
。错误是troff - cant break line
,因为我的终端在屏幕的一半上。但是我通过声明MANWIDTH=1000 man gcc | grep -- '^-c'
来解决此问题(感谢Why is this "can't break line" warning from grep of gcc man page?。但是不幸的是,它找不到该选项。没有begginig模式(只有-c
:完整:{{ 1}},它将发现MANWIDTH=1000 man gcc | grep -- '-c'
的所有出现,这已经很多了,但是特别是我要寻找的选项会被无用的搜索弄得一团糟,所以-c
为什么不使用grep
和^
作为行的开头和结尾?还是与终端窗口的大小(即,按宽度缩短)=行的锚点有关?然后我在没有全屏显示终端的情况下通过行首搜索grep?
PS:
我不知道为什么,当我声明MANWIDTH var时,尽管它很有价值,但它不会立即与man命令一起应用。也就是说,如果我先声明它,然后尝试处理某些事情(最终将其通过管道传送到grep以进行行搜索),则会再次出现错误:$
如此:
troff: warning: can't break line
答案 0 :(得分:0)
-c
不在行的开头,因为它不在左边距。您可以使用模式^\s*-c
,该模式在行的开头和-c
之间允许零个或多个空格字符。
但是,如果您想阅读-c
命令的文档,最好使用info
命令,至少在这种情况下:
info gcc --index-search=c
注意:要执行此操作,您需要安装gcc信息页面。例如,在Debian / Ubuntu系统上,您需要sudo apt-install gcc-doc
。
注意:对于大多数选项,gcc信息文件的作者选择不将前导连字符放在索引条目中。但是大多数信息文件都使用带有破折号和带有破折号的索引惯例(就像gcc带有一些-f
选项一样)。尽管info
会尝试找到最相关的索引匹配项,但是info
索引搜索是文字字符串的子字符串匹配项(即没有正则表达式运算符),有时您会更喜欢用破折号搜索:
info grep --index-search=-E
或使用-all
选项提供所有匹配索引条目的列表:
info grep --all --index-search=E
对于选项少于gcc的实用程序,您可以直接转到带有-O
选项的选项列表。
info grep -O
最后,您的PS的答案:
如果您希望export MANWIDTH=1000
是所有子进程可见的环境变量,请使用MANWIDTH
。