从Linux终端运行的命令输出到文本文件

时间:2015-04-21 09:53:01

标签: linux bash scripting terminal output

我有一个在Linux终端上工作的程序。当它运行时,数据输出到终端窗口,数据每秒都在变化。

窗口示例:

a b c d

d b c a

c a d b

机器2的数据 - 时间:15:29:31

11 13 17 18 #changing lines

21 18 17 16 #changing lines

18 17 11 9 #changing lines

我想将窗口中的数据以10分钟的间隔记录到1个文件中。什么是Bash脚本,它可以读取窗口的内容,每隔十分钟解析第4行及以下的内容并将其附加到1个文件中?

所需结果的示例 - log.txt:

机器2的数据 - 时间:15:40:00

58 47 61 34

17 8 3 2

机器2的数据 - 时间:15:50:00

5 7 8 12

35 41 70 25

33 41 11 14

机器2的数据 - 时间:16:00:00

12 14 15 16

13 18 19 20

24 21 22 23

这个任务的第二部分在我脑海中可以解决这样的事情: grep -A 100“来自机器的数据”...... | tail -n +2>> log.txt的 (不知道应该是什么而不是...) 但关于第一部分,还有更多不清楚的问题。可能是我应该看到STDOUT的主题。 需要你的帮助。

1 个答案:

答案 0 :(得分:0)

你的问题有几个部分都可以通过谷歌搜索获得。

第1部分......

为了获得第4行或第4000行或文件的任何行,您可以按照以下讨论进行讨论:How can I extract a predetermined range of lines from a text file on Unix?

第2部分......

然后有问题是每10分钟做一次吗?您应该从第1部分(无论您选择做什么)中获取解决方案并将其放在.sh文件中并通过crontab每10分钟运行一次该脚本,您可以通过

访问该文件
crontab -e

您可以在此处详细了解:https://serverfault.com/questions/248305/running-cron-on-every-10-minutes

编辑第3部分以回应您的评论:

使用屏幕将正在运行的进程置于后台,然后打开另一个终端窗口并在那里执行任何操作。您还可以使用ssh连接到同一台计算机并运行其他终端会话。您不必在1个屏幕上运行1个终端会话,而您不知道其他任何内容。谷歌nohup或屏幕。