为什么在gcc手册页的grep中出现“无法换行”警告?

wln*_*ana 5 grep gcc manpage

我试图找到以-s以下命令结尾的行,但收到警告:

$ man gcc | grep '\-s$'
<standard input>:4808: warning [p 54, 13.2i]: can't break line
$ man gcc | egrep '\-s$'
<standard input>:4808: warning [p 54, 13.2i]: can't break line
Run Code Online (Sandbox Code Playgroud)

下面是我的开发环境:

$ uname -a
Linux localhost 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u1 (2015-12-14) x86_64 GNU/Linux

$ gcc --version
gcc (Debian 4.9.2-10) 4.9.2
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Run Code Online (Sandbox Code Playgroud)

小智 6

通常man格式化内容以匹配终端的宽度。您将它的输出重定向到一个没有“屏幕宽度”的管道,因此它使用 80 个字符的默认宽度进行格式化。某些手册页的表格宽度超过 80 个字符,因此您会收到“无法换行”的警告。尝试这个:

$ MANWIDTH=160 man gcc | grep '\-s$'
Run Code Online (Sandbox Code Playgroud)