gpt4 book ai didi

linux - 替换字符串中的值

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:10 25 4
gpt4 key购买 nike

我有大约 70k 行的文本文件,如下所示:

/dir1/dir2/dir3/2013/04/04/file.pdf

我需要将其转换为:

dir4/dir5/2013/04/4/file.pdf

重要的是,删除第 6 位的前导 0,该位置的值从 1 到 31。任何人都可以帮忙解决这个问题吗?

最佳答案

使用sed:

sed -E 's@(/[^/]*){3}(/[0-9]+/[0-9]+/)0?([0-9]+.*)@dir4/dir5\2\3@' your_file

我们匹配第一组中将被忽略的三个目录(如果 sed 支持的话,我们将使用非捕获组),然后匹配第二组中的年份和月份,然后可以选择当天的前导 0,然后是第三组中的当天的其余部分和文件名。替换模式仅指定新的路径根,然后引用第二组和第三组。我使用 @ 作为分隔符,以避免必须在模式和替换模式中对所有 / 进行空格,在其中找不到的任何字符也可以工作。

Try it online !

关于linux - 替换字符串中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51595401/

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