如何grep两个不同文件中的关键字[关闭]

问题描述 投票:0回答:3

下面的两个脚本以相同的时间戳开始,但我想区分输出文件名以用于记录目的。创建输出后,我们需要在两个不同的输出文件中搜索特定关键字。

Shell script 1
Test1=`command 2>output.txt`

Shell script 2
Test1=`command 2>output.txt`

Shell script 3 and so on
linux shell
3个回答
3
投票

如何区分output.tx

你不能。

您必须更改日志行的来源 - 向每个日志行添加唯一元素、将其拆分为多个文件等。

我看到其他答案显示了特定的解决方案,我喜欢

test1 | logger -t test1
,因为我不必关心journalctl日志文件的日志轮换,它们永远不会最大程度地填充我的光盘,压缩得很好,而且我可以将所有内容集中在一个地方.


1
投票

使用进程ID怎么样?

OUTPUT_FILE_NAME="output-$(date +%C%y%m%d%H%M%s)-$$.txt"
comannd 2>"${OUTPUT_FILE_NAME}"
grep "stuff to look for" "${OUTPUT_FILE_NAME}"

0
投票

我会做这样的事情:

在第一个脚本中:

 command 2>&1 >/dev/tty | sed 's/^/script1:/' >output1.txt

第二个:

 command 2>&1 >/dev/tty | sed 's/^/script2:/' >output2.txt

等等。 当然,您可以将 stdout 发送到任何地方,但是

/dev/tty
即使您将 stderr 通过管道传输到日志时也会将其发送到终端。

© www.soinside.com 2019 - 2024. All rights reserved.