gpt4 book ai didi

linux - 使用 awk 或 sed 替换 _ 之前的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 12:15:19 26 4
gpt4 key购买 nike

我正在编写一个脚本,要求我在列表期间替换文件名中 _ 之前的单词。详情如下。

示例输入:

2017.12.01_07
2017.12.01_07
2017.12.01_06
2017.12.01_06
2017.12.01_05
2017.12.01_06
2017.12.01_05
2017.12.01_06
2017.12.01_08

我想用 1 周前的日期替换 _ 之前的当前日期

我想替换为的日期:- DATE_SEC=$(date -d '7 day ago' +'%Y.%m.%d').

预期输出:

2017.12.01_08 should change to 2017.11.24_08

问候,

吃饭

最佳答案

GNU sed解决方案:

sed -En 's/\./-/g; s/^([^_]+)(_.*)/date -d"\1 + 1 week ago" +%Y.%m.%d\2/ep' file

输出:

2017.11.24_07
2017.11.24_07
2017.11.24_06
2017.11.24_06
2017.11.24_05
2017.11.24_06
2017.11.24_05
2017.11.24_06
2017.11.24_08

  • e - 此命令允许将来自 shell 命令的输入通过管道传输到模式空间。如果进行了替换,则执行在模式空间中找到的命令,并将模式空间替换为其输出
  • p - 如果进行了替换,则打印新的pattern 空格

关于linux - 使用 awk 或 sed 替换 _ 之前的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593138/

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