gpt4 book ai didi

regex - Bash 脚本正则表达式...如何查找和替换所有匹配项?

转载 作者:行者123 更新时间:2023-11-29 08:51:54 24 4
gpt4 key购买 nike

我正在编写一个逐行读取文件的 bash 脚本。

该文件是一个 .csv 文件,其中包含许多格式为 DD/MM/YYYY 的日期,但我想将它们更改为 YYYY-MM-DD。

我会使用正则表达式匹配数据,并替换它,以便文件中的所有日期都正确格式化为 YYYY-MM-DD。

我相信这个正则表达式会匹配日期:

([0-9][0-9]?)/([0-9][0-9]?)/([0-9][0-9][0-9][0-9])

但我不知道如何找到正则表达式匹配并将它们替换为新格式,或者这在 bash 脚本中是否可行。请帮忙!

最佳答案

使用 sed 试试这个:

line='Today is 10/12/2010 and yesterday was 9/11/2010'
echo "$line" | sed -r 's#([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})#\3-\2-\1#g'

OUTPUT:
Today is 2010-12-10 and yesterday was 2010-11-9

PS:在 mac 上使用 sed -E 而不是 sed -r

关于regex - Bash 脚本正则表达式...如何查找和替换所有匹配项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5658085/

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