如何在终端中禁用换行?

如何在终端中禁用换行?

我需要使用 bash shell 查看大型日志文件。我曾经用来less打开文件,但由于行太长,因此发生了某种换行/自动换行。

由于文件是 Log4J 日志,并且每行的开头都有一个模式,因此换行会使分析输出变得困难,所以我开始使用less -Swhich Chops 长行。

但现在我需要使用tail -f,并且它还对输出进行换行。是否可以在 bash shell 中对所有命令禁用换行?

笔记:另一个问题的答案提到了转义序列echo -ne '\e[?7l',但它似乎不适用于 bash。

答案1

尝试:

less -S +F filename

=

less --chop-long-lines +F filename

进而:

  • Ctrlc停止拖尾,现在您可以使用光标键左右移动。
  • Shiftf恢复拖尾
  • Ctrlc,q退出

less 手动: + 如果命令行选项以 + 开头,则该选项的其余部分将被视为 less 的初始命令。

例如,+F告诉 less 向前滚动,并在到达文件末尾时继续尝试读取

答案2

找一个超级用户的好答案,这对于gnome-terminal,可能也适用于其他终端:

setterm -linewrap off

在此输入图像描述

答案3

您可以通过输入以下命令暂时禁用换行:

tput rmam

要恢复换行,请使用以下命令:

tput smam

答案4

你真的需要tail -f或者想要less +F做一些事情吗?由于听起来您仍然想要一个交互式寻呼机,因此在我看来,坚持使用less比自己重新实现一个要容易得多。

最后一点:你考虑过吗tail -f file | less

相关内容