gpt4 book ai didi

linux - 使用sed通过目录中的多个文件获取模式范围

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:33 31 4
gpt4 key购买 nike

我想知道是否可以使用 sed 命令找到 2 个模式(在本例中为日期)之间的范围并将范围内的这些行输出到新文件。

现在,我只查看一个文件并获取文件 FileMoverTransfer.log 的时间范围内的行。但是,经过一段时间后,这些日志会移动到后缀为 FileMoverTransfer.log-20180404-xxxxxx.gz 的新日志文件中。这是我当前的代码:

sed -n '/^'$start_date'/,/^'$end_date'/p;/^'$end_date'/q' FileMoverTransfer.log >>/public/FileMoverRoot/logs/intervalFMT。日志

虽然这不起作用,因为 sed 无法查看目录中以 FileMoverTransfer.log 开头的所有文件?

sed -n '/^'$start_date'/,/^'$end_date'/p;/^'$end_date'/q' FileMoverTransfer.log* >> /public/FileMoverRoot/logs/intervalFMT.log

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

范围运算符仅在单个文件中运行,因此如果开头在一个文件中而结尾在另一个文件中,则不能使用它。

您可以使用 cat 连接所有文件,并将其通过管道传递给 sed:

cat FileMoverTransfer.log* | sed -n "/^$start_date/,/^$end_date/p;/^$end_date/q" >> /public/FileMoverRoot/logs/intervalFMT.log

您可以使用双引号,而不是引用和取消引用 sed 命令,以便在其中扩展变量。如果变量包含空格,这也可以防止出现问题。

关于linux - 使用sed通过目录中的多个文件获取模式范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49659001/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com