shell 如何使用sed删除超过30天的日志文件行[重复]

rbpvctlc  于 2023-02-24  发布在  Shell
关注(0)|答案(1)|浏览(180)
    • 此问题在此处已有答案**:

Remove all lines in file older than 24 hours(2个答案)
8天前关闭。
我有一个以下格式的日志文件,我想删除超过30天的行以清理磁盘空间。由于符合性要求,我无法清空该文件。我使用了以下sed格式,但它不起作用。请建议如何使用sed或任何其他选项来实现这一点。
我试过这个:

sed -i "s@^[0-9]/[0-9]/[0-9]@$(date -d "-30 days" +"%m/%d/%Y")@g" "$file"

日志文件:

12/31/2022 03:00:49 ANS1228E Sending of object '/xxxxxe/xxx' failed.
12/31/2022 03:00:49 ANS0326E This node has exceeded its maximum number of mount points.
12/31/2022 03:00:49 ANS1228E Sending of object '/xxxxx/XXX/product' failed.
12/31/2022 03:00:49 ANS0326E This node has exceeded its maximum number of mount points.
12/31/2022 03:00:49 ANS1228E Sending of object '/XXX/XXX/product/XXXXXXX'
wgeznvg7

wgeznvg71#

试试这个:
sed -i 's@'"$(date -d "-46 days" +"%m/%d/%Y")".*'@@g' "$file"

相关问题