相关疑难解决方法(0)

监视文件直到找到字符串

我正在使用 tail -f 来监视正在积极写入的日志文件。当某个字符串被写入日志文件时,我想退出监控,并继续我的脚本的其余部分。

目前我正在使用:

tail -f logfile.log | grep -m 1 "Server Started"
Run Code Online (Sandbox Code Playgroud)

找到字符串后,grep 按预期退出,但我需要找到一种方法使 tail 命令也退出,以便脚本可以继续。

bash grep tail logfiles

70
推荐指数
7
解决办法
12万
查看次数

“观察”命令的输出,直到观察到特定的字符串,然后退出

我正在寻找一种以编程方式观察命令输出的方法,直到观察到特定字符串然后退出。这与this question非常相似,但我不想拖尾文件,而是要“拖尾”命令。

就像是:

看 -n1 my_cmd | grep -m 1 "我正在寻找的字符串"

(但这对我不起作用。)

更新:我需要澄清“my_cmd”不会连续输出文本,而是需要重复调​​用直到找到字符串(这就是我想到“watch”命令的原因)。在这方面,“my_cmd”就像许多其他 unix 命令,例如:ps、ls、lsof、last 等。

linux bash

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

杀死进程取决于其标准输出输出?

假设我正在运行一个进程,它执行了一个非常冗长的过程,将其进度打印到标准输出。有没有办法在之后自动终止进程

  • x 行输出
  • 在输出中找到某个关键字?

我目前已经将命令的输出通过管道x传输到egrep 'search pattern并希望xegrep显示特定行后终止。

我想如果有什么方法可以编写脚本:

run command `y` after `x` lines of output are seen on previous apps piped `sdout`
Run Code Online (Sandbox Code Playgroud)

我可以很容易地把它拉下来,例如:

mylongrunningtool | egrep '(term1|term2)' | runafterxlines --lines=8 --command='killall -9 mylongrunnigtool`
Run Code Online (Sandbox Code Playgroud)

有接班人吗?

unix command-line

7
推荐指数
2
解决办法
2438
查看次数

标签 统计

bash ×2

command-line ×1

grep ×1

linux ×1

logfiles ×1

tail ×1

unix ×1