我需要使用 bash shell 查看大型日志文件。我是less
用来打开文件的,但是由于行太长,所以正在进行某种换行/自动换行。
由于文件是Log4J日志,而且每一行的开头都有一个模式,换行后很难分析输出,所以我开始使用less -S
which 砍长行。
但是现在我需要使用tail -f
,并且它还会对输出进行换行。是否可以在 bash shell 中为所有命令禁用换行?
注意:有一个提到转义序列的不同问题的答案echo -ne '\e[?7l'
,但它似乎不适用于 bash。
我在 Mac OS X 上工作,它附带了几个主要位于/usr/bin/
和 的二进制文件/usr/sbin/
。由于它没有像某些 Linux 发行版那样的本地包管理器,我习惯于管理自己的二进制文件,在/usr/local/<package_name>/
.
通过这种方式,我能够以手动更新文件中的PATH
和MANPATH
变量为代价从我的系统中完全删除一个包.bashrc
。
这是一个简单的例子:
Mac OS X 附带 ant 1.7.0,位于/usr/bin
. 我需要使用最新版本,所以我从 Apache 下载它,然后将它解压缩(构建)到/usr/local/apache-ant-1.8.2
. 然后我更新我的.bashrc
文件:
# Mac OS X original PATH
PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin"
# Apache Ant 1.8.2
PATH="$PATH:/usr/local/apache-ant-1.8.2/bin"
export PATH
Run Code Online (Sandbox Code Playgroud)
我确保导出/usr/bin/
和/usr/sbin/
之前,ant/bin/
因为除了ant
我不想覆盖的之外,通常还有其他二进制文件。
问题是,当我输入时,which ant
我得到/usr/bin/
. 因此,我将其重命名为/usr/bin/ant
to/usr/bin/ant-old
以使用最新版本。
虽然这有效,但我想知道是否有更好的方法来替换系统二进制文件(主要是为了避免最后一次重命名)。