标签: tail

结合 find grep 和 tail

我试图找到以某个名称开头的所有文件,然后遍历每个文件以查找包含字符串的行,然后仅打印出包含该字符串的每个文件的最后一行。一步一步,我首先找到我的目录中以“A123”开头的所有文件

find . -name 'A123*'
Run Code Online (Sandbox Code Playgroud)

然后获取文件中包含“Trial”的每一行

find . -name 'A123*' -exec grep 'Trial' {} \;
Run Code Online (Sandbox Code Playgroud)

然后从这里我只想打印最后一行,

find . -name 'A123*' -exec grep 'Trial' {} | tail -1 \;
Run Code Online (Sandbox Code Playgroud)

但是,最后一个命令不起作用。我该如何解决这个问题才能得到我想要得到的东西?

grep find tail

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

如何拖尾文件并捕获一分钟的输出?

我正在跟踪一个日志文件。如何捕获一分钟的输出?

tail

3
推荐指数
1
解决办法
1044
查看次数

如何在大文件中间抓取随机部分?

我有一个大约 3.5 GB 的巨大日志文件,并且想在 10 MB 中间采样随机部分,以便调试我的应用程序正在执行的操作。

我可以使用 head 或 tail 命令来获取文件的开头或结尾,如何从文件中间获取任意部分?我想我可以做类似的事情,head -n 1.75GB | tail -n 10MB但这似乎很笨拙,我需要确定文件中点的行号以获得 1.75GB 和 10MB 的行数。

linux tail debug logfiles head

3
推荐指数
1
解决办法
1658
查看次数

我怎样才能让 ls 跟随像 tail -f 那样对文件执行的目录的内容

我想基本上持续更新目录的文件列表,类似于 tail 处理-f文件上的标志的方式。

有什么合理的方法可以做到这一点吗?

bash command-line ls tail coreutils

3
推荐指数
1
解决办法
4206
查看次数

如何在 OS X 上通过管道输出 tail -F?

我最近从 Ubuntu 转移到 OS X,我发现“tail”命令的行为有所不同。

在 Ubuntu 上我可以运行

tail -f xyzzy.log | espeak
Run Code Online (Sandbox Code Playgroud)

(例如,让计算机读取 IRC 上发生的事情。)

但是在 OS X 上

tail -F xyzzy.log | say
Run Code Online (Sandbox Code Playgroud)

(我希望它是等效的)不会产生任何结果。

大概这是因为管道想要发送 tail 的完整输出 to say,但由于 tail 不断运行(使用 -f),它永远不会到达进程的末尾,因此输出永远不会被传递给 say。老实说,如果我理解正确的话,这种行为比我在 Ubuntu 上的行为更有意义——只是没那么有用。

那么有没有另一种方法可以达到相同的结果?(我关于为什么会发生这种情况的假设是否正确?)

command-line pipe tail macos

3
推荐指数
1
解决办法
6608
查看次数

拖尾php错误日志时的彩色输出

我试图找到一种方法(通过转义字符或软件)在我的 php 错误日志中显示彩色线条。

现在我正在阅读他们(现场)

tail -n 50 -f /var/log/apache2/error.log

这很棒,但我希望能够将error_log()某些行变为红色,例如,标记身份验证错误。有没有办法做到这一点?

我在 Ubuntu 12.04 上使用 PHP 5.3

linux php tail ubuntu error-logging

3
推荐指数
2
解决办法
3739
查看次数

Linux 中的管道和尾部 -f

可以执行cat logfile | tail -f吗?出于某种原因,它只是读取初始日志,但随后不会更新传入的条目。我知道我可以直接做tail -f logfile

我只是想知道为什么这不起作用,如果tail -f必须始终先是,然后是另一个管道?

pipe tail

2
推荐指数
1
解决办法
2585
查看次数

尾文件名,而不是文件

在 UNIX(准确地说是 OS X BSD)中,我在日志文件上有一个“tail -f”命令。有时我想删除这个日志文件,这样我就可以更容易地在我的文本编辑器中查看它。

我删除该文件,然后我的程序在新活动后重新创建它。但是,我的 tail 命令(以及其他任何监视旧日志文件的命令)没有更新;它仍在监视已删除的旧日志文件。

我想我明白为什么会这样(文件名只是指向文件数据块的指针)。我想知道如何解决这个问题。理想情况下,当文件名被删除和重新创建时,我的 tail 命令(以及我指向文件的任何其他内容)将能够从新文件中读取数据。

我该怎么做?

unix tail macos

2
推荐指数
1
解决办法
603
查看次数

提取ELF的内容并写入二进制文件

我一直在尝试提取固件的内容并将其放入二进制文件,但没有成功。

我看到了正确的十六进制内容,但不确定如何将它们按位放入文件中。

objdump -s -j .text firmware.ko | 尾 -n +5 | awk '{print "dd if='firmware.ko' of='content.bin' bs=1 count=$["$2 $3 $4 $5 "]"}'

linux awk dd tail binary-files

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

修改 2>&1 以便输出转到特定文件,并且任何错误或其他输出都转到我可以监视的日志文件?

我正在阅读这篇文章,但我并不完全理解答案。

我想知道我是否可以修改它,它叫什么,命令重定向?

我想要什么:

  1. 不要挂起,使用 & 符号&继续执行下一个命令
  2. 将命令生成的数据输出到文件data.json
  3. 任何问题、错误消息或运行命令的问题,将它们输出到 bqlog.txt

这可能吗?

例如我目前有这个命令:

bq query --max_rows=1000000 --use_legacy_sql=false --format=json --batch=true --headless=true 'select * from `ga4-extract.analytics_123456789.events_'"$RUNDATE"'`;' > data.json
Run Code Online (Sandbox Code Playgroud)

大约 30 分钟后失败,我看不到输出或问题是什么。这是在 github actions runner 上,工作流的控制台输出仅给出失败状态,但对于此工作流来说,没有控制台输出指示错误。

我想修改我的命令,以便可以像我已经拥有的那样输出到 data.json,但也可以继续下一步监视 bqlog.txt 文件tail -F bqlog.txt

shell redirection command-line tail

2
推荐指数
1
解决办法
4568
查看次数

标签 统计

tail ×10

command-line ×3

linux ×3

macos ×2

pipe ×2

awk ×1

bash ×1

binary-files ×1

coreutils ×1

dd ×1

debug ×1

error-logging ×1

find ×1

grep ×1

head ×1

logfiles ×1

ls ×1

php ×1

redirection ×1

shell ×1

ubuntu ×1

unix ×1