bash - 我有一个包含日志文件的目录,我想匹配一个模式来删除它并将内容再次写入相同的文件
问题描述
ls -ltr /var/log/script1/
total 5964
-rw-r--r--. 1 root root 22720 Apr 28 11:14 controller.log
-rw-r--r--. 1 root root 869 Apr 28 11:14 controller.log.2018-03-26-14
-rw-r--r--. 1 root root 893 Apr 28 11:14 controller.log.2018-03-19-13
-rw-r--r--. 1 root root 22409 Apr 28 11:14 controller.log.2018-03-19-12
-rw-r--r--. 1 root root 36918 Apr 28 11:14 controller.log.2018-04-02-05
-rw-r--r--. 1 root root 62605 Apr 28 11:14 controller.log.2018-04-02-04
以上文件包含多个“at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)”消息我想删除它并将其余消息写入同一个文件
我正在使用以下命令打印输出:
for f in /var/log/script1/* ; do sed '/^\s*at/d' $f ; done
我在下面试过但没有运气:
对于 /var/log/script1/* 中的 f ;做 sed '/^\s*at/d' $f > $f ; 完毕
上面的命令返回空文件。有人可以帮忙吗!
解决方案
推荐阅读
- c++ - C++20 - 在模板中调用声明为 auto 的函数
- c++ - 仅处理平铺事件而不是最大化事件
- javascript - 撰写时Redux Reselect不更新?
- java - JWTParser - NoSuchMethodError - ObjectMapper.readerFor
- java - 如何将数据存储在对象的对象列表中?
- .net - 获取基本登录提示而不是重定向
- java - 使用 GELF 格式的 RELP 发送日志
- r - 在使用人员插入到 powerpoint 中的 flextable 创建的表中设置行高
- laravel - 有没有办法在laravel中转换关系表属性?
- javascript - 使用 Loop ReactJS 创建按钮