将sed截断x行组合成find命令

问题描述 投票:1回答:1

我们在多个服务器上的同一位置有一个大型日志文件,我想创建一个cron作业来截断该文件以持续100k行。

以下命令有效:

sed -i 1,$(($(wc -l < /root/server123.example.com.log) -100000))d /root/server123.example.com.log

但是每个服务器上的主机名是不同的(server1,server2,server3等),我想要一个命令我可以粘贴到每个cron文件中。在我测试期间,我不确定如何在上面的命令中实现通配符。

我认为最好的方法可能是将它与find命令结合起来,但我对如何做到这一点毫无头绪。

find /root/server*.example.com.log -type f -exec sed <NOT SURE..> \;

任何帮助,将不胜感激。

sed find
1个回答
0
投票

在我测试期间,我不确定如何在上面的命令中实现通配符。

如果每个服务器上只有一个日志文件,则只需插入通配符即可:

sed -i 1,$(($(wc -l < /root/server*.example.com.log) -100000))d /root/server*.example.com.log
© www.soinside.com 2019 - 2024. All rights reserved.