gpt4 book ai didi

regex - 从除文件扩展名 (.png) 之外的所有文件中删除 _ 之后出现的字符

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

我正在寻找一个 unix 命令/shell 脚本来删除所有文件中 _ 之后出现的字符,不包括文件扩展名。

示例:

b6d28-insurance-renewal-shop_6b5c74fa3d4b96f7557c3fd66f2555af.png

应该重命名为

b6d28-insurance-renewal-shop.png

我曾尝试在线搜索,但未能找到快速且最佳的解决方案。

请注意,这些额外的字符是随机添加的,并且在每个文件中各不相同。

提前致谢!

最佳答案

您可以像这样使用 sed 使用 negated character class:

f='b6d28-insurance-renewal-shop_6b5c74fa3d4b96f7557c3fd66f2555af.png'
sed 's/_[^_.]*//' <<< "$f"

b6d28-insurance-renewal-shop.png

[^_.] 匹配除点或下划线以外的任何字符。

如果您使用的是 bash,那么您可以在 shell 中使用:

echo "${f%_*}.png"

关于regex - 从除文件扩展名 (.png) 之外的所有文件中删除 _ 之后出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439025/

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