gpt4 book ai didi

sed - 使用 sed 命令在 Unix 中子字符串文件名

转载 作者:行者123 更新时间:2023-12-01 09:09:24 25 4
gpt4 key购买 nike

我想在 unix 中使用 sed 命令对文件名进行子字符串化。

文件名:Test_Test1_Test2_10082019_030013.csv.20191008-075740

我想要第 3 个下划线之后的字符或者(Test2 之后的所有字符)我需要打印出来。

这可以使用 sed 命令来完成吗?

我试过这个命令

sed 's/^.*_\([^_]*\)$/\1/' <<< 'Test_Test1_Test2_10082019_030013.csv.20191008-075740' 

但这给出的结果为 030013.csv.20191008-075740我需要 10082019_030013.csv.20191008-075740

谢谢尼哈

最佳答案

要从头删除直到包括您可以使用的第 3 个下划线

sed 's/^\([^_]*_\)\{3\}//' <<< 'Test_Test1_Test2_10082019_030013.csv.20191008-075740'

这将删除由 3 组(任意数量的非下划线字符后跟下划线)组成的初始部分。结果是

10082019_030013.csv.20191008-075740

如果您使用 GNU sed,您可以将其切换为扩展的正则表达式并省略反斜杠。

sed -r 's/^([^_]*_){3}//' <<< 'Test_Test1_Test2_10082019_030013.csv.20191008-075740'

关于sed - 使用 sed 命令在 Unix 中子字符串文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58394773/

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