如何使用 Mac 终端从不同长度的文件名中删除除最后 12 个字符以外的所有字符?
How do I remove all but the last 12 characters from filenames of different lengths using Mac terminal?
如何从这些文件中删除最后 12 个字符,并将其更改为:
RE0001_cdea_3000_001_000_0000.MP4
175c_3000_000_000_0000.MP4
为此:
001_000_0000.MP4
000_000_0000.MP4
我猜是 for f in *; do mv "$f" "${f:12}"; done
之类的倒数。但这删除了前 12 个字符,并且由于文件长度会改变,我希望从文件类型开始并计算左边。感谢您的帮助!
使用负偏移从末尾开始计数。
mv "$f" "${f: -12}"
请注意,当使用负偏移时,您必须在偏移前加上 space。否则它被解释为 ${f:-defaultvalue}
但是你好像忘了计算.MP4
后缀,你想要最后16个字符。
mv "$f" "${f: -16}"
如何从这些文件中删除最后 12 个字符,并将其更改为:
RE0001_cdea_3000_001_000_0000.MP4
175c_3000_000_000_0000.MP4
为此:
001_000_0000.MP4
000_000_0000.MP4
我猜是 for f in *; do mv "$f" "${f:12}"; done
之类的倒数。但这删除了前 12 个字符,并且由于文件长度会改变,我希望从文件类型开始并计算左边。感谢您的帮助!
使用负偏移从末尾开始计数。
mv "$f" "${f: -12}"
请注意,当使用负偏移时,您必须在偏移前加上 space。否则它被解释为 ${f:-defaultvalue}
但是你好像忘了计算.MP4
后缀,你想要最后16个字符。
mv "$f" "${f: -16}"