做less textfile | col
和cat textfile
完成同样的事情吗?
我想知道是否man mysql | col -b > textfile
也man mysql > textfile
这样做?
答案1
这是完全不同的,因为less
可以进行各种类型的转换,例如 via $LESSOPEN
。
答案2
它并不完全相同,因为何时col
可以对 的输出执行某些操作less
。
这里重要的一点是,less
如果输入文件的输出不是 tty,则将其复制到输出。你可以看到在less-451 - main.c - 第 222 行:
/*
* Set up terminal, etc.
*/
if (!is_tty)
{
/*
* Output is not a tty.
* Just copy the input file(s) to output.
*/
SET_BINARY(1);
if (nifile() == 0)
{
if (edit_stdin() == 0)
cat_file();
} else if (edit_first() == 0)
{
do {
cat_file();
} while (edit_next(1) == 0);
}
quit(QUIT_OK);
}
因此,要执行与 相同的操作cat file
,您可以:
less file | grep ^