我需要使用 bash shell 查看大型日志文件。我曾经用来less
打开文件,但由于行太长,因此发生了某种换行/自动换行。
由于文件是 Log4J 日志,并且每行的开头都有一个模式,因此换行会使分析输出变得困难,所以我开始使用less -S
which 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
答案3
您可以通过输入以下命令暂时禁用换行:
tput rmam
要恢复换行,请使用以下命令:
tput smam
答案4
你真的需要tail -f
或者想要less +F
做一些事情吗?由于听起来您仍然想要一个交互式寻呼机,因此在我看来,坚持使用less
比自己重新实现一个要容易得多。
最后一点:你考虑过吗tail -f file | less
?