gpt4 book ai didi

regex - 用 SED 或 AWK(或任何有效的方法)替换日期 - Linux 正则表达式

转载 作者:太空狗 更新时间:2023-10-29 11:37:11 26 4
gpt4 key购买 nike

我想转换:

Charlie answered 9 years ago
random text
Kevin answered 4 months ago

对此:

Charlie answered around March 2006
random text
Kevin answered around November 2014

使用以下代码:

date "+%B %Y" --date="9 years ago"

是我2006 年 3 月的来源。

我是否应该使用 for 循环,因为我将使用其中有 10 个以上日期表示“______ 前回答”的实例

推荐哪个程序? Sed、awk,还有吗?

谢谢,我正在为一位想要研究 Yahoo Answers 准确性的教授做这件事,我将非常感谢您的帮助。

最佳答案

$ cat tst.awk         
/answered/ && match($0,/[0-9]+[[:space:]]+[[:alpha:]]+[[:space:]]+ago/) {
cmd = "date \"+%B %Y\" --date=\"" substr($0,RSTART,RLENGTH) "\""
if ( (cmd | getline date) > 0 ) {
$0 = substr($0,1,RSTART-1) "around " date
}
close(cmd)
}
{ print }

$ awk -f tst.awk file
Charlie answered around March 2006
random text
Kevin answered around November 2014

关于regex - 用 SED 或 AWK(或任何有效的方法)替换日期 - Linux 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28883518/

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