标签: tail

在 Mac 上尾部文件而不换行

我想尾部 -fa 文件可能包含很长的行。我还希望每个屏幕行看到一行,并在必要时滚动到一侧,就像 Vim 的 zL 和 zH 一样,因此没有换行,

有办法做到这一点吗?理想情况下,无需使用 vim 或 emacs 来完成此任务。使用另一个终端模拟器没问题,但我使用的是 Mac(现在使用 iTerm2)。

command-line tail osx-mountain-lion

6
推荐指数
1
解决办法
4202
查看次数

通过 grep 管道传输其中一个文件时尾随多个文件

我想使用tail follow两个日志文件,但是其中一个日志文件数据太多,所以我想用grep过滤。

tail -f file1 file2|grep mySearch
Run Code Online (Sandbox Code Playgroud)

问题在于这两个文件都通过 grep 运行,或者说 tail 的输出通过 grep 运行。只应使用 mySearch 的 grep 过滤 file2。有任何想法吗?

我尝试过命名管道、进程替换和复合命令。

logging tail

5
推荐指数
1
解决办法
2942
查看次数

无论如何,通过SSH可以`cat`两个远程`tail -f`流吗?

我想将生成的两个连续文本流合二为一tail -f,并在同一屏幕上观看它们。是否可以?如果有帮助,两个文本流都是面向行的(例如日志)。

更新:只是为了清楚起见,这两个tail -f流不在本地文件上,而是来自两个远程 SSH 会话,例如ssh remote-host tail -f file.log

cat tail

5
推荐指数
2
解决办法
2882
查看次数

如何轻松地将文本文件分解成小于阈值的部分?

我有一些长度为 100 到 300 MB 的文本文件,我想在 Emacs 中查看它们,但是我的 Emacs 在打开和遍历如此大的文件时遇到了一些性能问题。因此,我正在寻找一个简单的实用程序来将文件拆分为可管理的块,比如每个 50 MB,并根据原始名称和一些后缀来命名块以指示它们在序列中的位置。每个块都会在前一个被截断的地方拾取,并且不超过 50 MB,最后一个块可能更短。

是否有任何简单的工具可以在 Linux 计算机上执行此操作,例如 head 或 tail 之类的东西,可以提供多个结果,每个块一个?

例如,给定test.out120 MB 长的文件,将其分成test.out.1前 50 MB、后test.out.250 MB 和test.out.3文件末尾的其余 20 MB。

我可以使用的组合head,并tail得到碎片,但我想一个工具,抽象出这一切,也许是一个Perl脚本或Python脚本有人已经创造了做这样的任务呢?

linux emacs tail head

5
推荐指数
1
解决办法
5547
查看次数

通过多个grep命令过滤tail命令以分隔文件

我想要做的是基于 grep 过滤器将一个日志文件的输出过滤为单独的日志文件。

tail -f test.log | tee >(grep "Error" > error.log) >(grep "Warning""> warning.log)

这样所有“错误”条目都在一个文件中,所有“警告”条目都在一个单独的文件中。

我知道这在概念上是有效的,因为如果我使用cat而不是tail,我会得到正确的文件输出,但无法实时跟踪更改(我需要这样做,因为我正在查看主动运行的测试的输出日志)

此外,如果我从grep命令中删除“>”文件重定向器,它会将各个 grep 输出正确输出到控制台;但是,我也想要一个录音文件。

回答:

写入文件时,grep的输出被缓冲。使用带有--line-buffer选项的egrep修复了该行为。

新命令如下所示:

tail -f test.log | tee >(egrep --line-buffered "ERROR" > error.log) >(egrep --line-buffered "WARNING" > warning.log)

linux bash grep tail

5
推荐指数
1
解决办法
2605
查看次数

Unix /Linux 用行号显示文件的最后一部分

有没有办法让tail在它显示的最后几行前面显示一个行号,以便在脚本中使用它时显示文件的增长。

例如:在这样的脚本中使用它时:

while [-z $(ps -p $pid) ]; do
   echo  "process is running"
   .....
   tail process.logfile
   sleep 15
   clear
done
Run Code Online (Sandbox Code Playgroud)

输出应该是:

111线 111
112线 112
113线 113
114线 114
115线 115
....

下一轮应该是:
116 line 116
117 line 117
118 line 118
119 line 119
120 line 120
...

linux unix command-line tail

5
推荐指数
1
解决办法
2681
查看次数

为什么不是`tail -f ... | grep -q ...` 在找到匹配项时退出?

我正在做一个非常标准的tail+ grep

tail -f some_log_file.txt | grep -q known-string
Run Code Online (Sandbox Code Playgroud)

如果我运行没有以下命令的命令-q

tail -f some_log_file.txt | grep known-string
Run Code Online (Sandbox Code Playgroud)

我看到输出:

[Tue Feb 12 11:32:45 2019] known-string.
Run Code Online (Sandbox Code Playgroud)

所以我知道grep是匹配的。但是,当我添加-qgrep 命令并没有退出时,它只是挂在那里等待更多输出......即使手册页说它会“如果找到任何匹配项,它将立即以零状态退出”:

   -q, --quiet, --silent
          Quiet;  do  not  write  anything  to  standard   output.    Exit
          immediately  with  zero status if any match is found, even if an
          error was detected.  Also see the -s or --no-messages option.
Run Code Online (Sandbox Code Playgroud)

谁能解释为什么-q不导致我的 grep 退出?我试图将 a 链接&& beep到最后,以便在grep找到匹配项时发出哔哔声,但除非我可以让它退出,否则将无法正常工作。

linux grep tail

5
推荐指数
2
解决办法
1479
查看次数

tail -va 文件,同时排除单词列表

我想跟踪一个不断被写入的日志文件,但想排除“常见”的各种条目,所以我只能看到错误等,因为它们被抛出。我可以通过管道传递给 grep -v "pattern",但理想情况下希望使用包含要跳过的条目的文件。有任何想法吗?

grep tail

4
推荐指数
2
解决办法
2万
查看次数

尾巴停止工作

我在 unix 中拖尾一个文件。它有时会停止工作,我必须重新运行该命令。有谁知道为什么会这样?

unix tail

4
推荐指数
1
解决办法
1769
查看次数

如何在 Linux 中跟踪块设备?

我正在尝试获取 /dev/sda2 的最后 1024 个字节。当我这样做时sudo tail -c 1024 /dev/sda2 | hd,提示会一直挂起,直到我按下 Ctrl-C。但是,当 I 时tail -c 1024 ddfilecopyofsda2 | hd,我立即得到文件最后 1024 个字节的不错输出。我在这里读到(https://unix.stackexchange.com/questions/60034/what-are-character-special-and-block-special-files-in-a-unix-system)“块设备通常是可查找的, “那我错过了什么?

linux tail

4
推荐指数
1
解决办法
1256
查看次数

标签 统计

tail ×10

linux ×5

grep ×3

command-line ×2

unix ×2

bash ×1

cat ×1

emacs ×1

head ×1

logging ×1

osx-mountain-lion ×1