【发布时间】:2022-10-23 12:25:42
【问题描述】:
一系列文件名应采用以下格式:
ABCDEF - XY1234 - FileName.ext
(中间部分是固定长度(2 个字母 + 4 个数字),第一个和最后一个部分可以比示例更长或更短。扩展名始终是三个字母数字字符。)
但是,某些文件没有由空格包围的连字符:
EFGHI- WX2345 -FileName.ext
JKLMN-VW3456 - FileName.ext
OPQRS - UV4567- FileName.ext
有没有办法使用 sed 将所有这些组合“X -X”、“X-X”和“X-X”替换为“X - X”?
(我已经尝试了非空白字符后跟连字符的模式 - '\S\-' 作为我的模式,但是将其替换为空格后跟连字符 '\ \-' 然后意味着我丢失了由 '\S' 表示的字符。如果这可行,我的意图是通过三个变体传递每个文件名以确保合规性。)
【问题讨论】:
-
请用您的实际/完整代码尝试更新问题以及文件重命名;你在使用
bash/mv循环吗?你在用rename吗?别的东西? -
除了连字符之前/之后,空格是否会出现在文件名中的其他任何地方?连字符可以出现在文件名的其他任何地方吗?
-
连字符不会出现在文件名的其他任何地方,但空格将出现在可变长度部分中。我的问题与重命名机制无关,它与生成目标模式有关。