awk - 根据系统日期替换特定位置的文本
问题描述
我有一个单行文件。我想用系统日期(YYYY-MM-DD)替换位置 188(含)到 197 之间的文本。
我试过这个但它不起作用:
sed 's/\(.\{188\}\)\([0-9-]\{10\}\)\(.*\)/\1$(date '+%Y-%m-%d')\188/g'
我想使用 sed 或任何在 shell 脚本中工作的东西。
输入文件是:
{ "agent": { "run_as_user": "root" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/home/ec2-user/logs/**", "log_group_name": "Staging", "log_stream_name": "2020-10-24", "timestamp_format": "[%Y-%m-%d %H:%M:%S]" } ] } } } }
. . . 在输出中,我只想更改日期,如下所示。
{ "agent": { "run_as_user": "root" }, "logs": { "logs_collected": { "files": { "collect_list": [ { "file_path": "/home/ec2-user/logs/**", "log_group_name": "Staging", "log_stream_name": "2020-10-25", "timestamp_format": "[%Y-%m-%d %H:%M:%S]" } ] } } } }
解决方案
您能否尝试以下操作,按照 GNU 中显示的 OP 尝试编写awk
。
awk -v date=$(date +%Y-%m-%d) '{print substr($0,1,187) date substr($0,198)}' Input_file
推荐阅读
- reactjs - 来自 Docker 的网络 IP 不适用于 React + Vite.js,因此无法访问 k8s pod
- python - 蟒蛇 | Tkinter RuntimeError:主线程不在主循环中
- javascript - 如何通过键盘和鼠标访问 input[type="date"]?
- c - 关于C中的时间戳
- mips - 如何清除 mips 数组?
- next.js - NextJS 服务器端渲染在动态导入时未禁用
- javascript - 如何在javascript中获取模型值
- c++ - listener::on_accept 函数在 Boost 库中的 do_accept 函数结束时不被调用
- html - HTML 错误表格行宽 2 列,小于第一行建立的列数 (3)
- ruby-on-rails - 如何使用 Sidekiq 将工作放入 Dead?