将命令的彩色输出通过管道传递到less命令

时间:2019-03-27 01:55:13

标签: bash pipe less-unix

我具有以下功能来打印命令的彩色输出:

faketty () {
            script -qfec "$(printf "%s " "$@")" > out; less -r out; rm out;
}

我无法将script命令的颜色输出直接传送到less -r中,因为格式被弄乱了。如图所示,将其保存到文件中即可。想知道我是否可以消除保存到文件的需要。

更新:我运行的版本少于481(GNU正则表达式)。

1 个答案:

答案 0 :(得分:0)

不知道为什么会这样,但是确实可以:

faketty () {
            script -qfec "$(printf "%s " "$@")" dev/null;
}

faketty cheat $1 $2 | less +Gg -r;

无论出于何种原因,将管道移到该函数之外都会有所帮助。但是,我仍然必须打^L来清理混乱。 +Gg将文件移至最后一行,然后移至第一行。这样就可以“清理”格式,而不必点击^L