Tiw*_*ina 2 macos bash terminal command-line-interface
我有格式的一堆文件的photo.jpg.png文件夹中,并且此文件夹中的每一张照片,我想替换.jpg.png用.png.我怎么能从终端这样做?
我有一个基本的Python和bash背景,所以我知道我想做这样的事情:
$ for i in *.png; do mv $i $i[:-8]; done
$ for i in *; do mv $i $i.png; done
Run Code Online (Sandbox Code Playgroud)
但是[:-8]为了删除每个文件名的最后8个字符,我会用什么替换Pythonic 呢?
编辑我现在意识到从字符串末尾开始计算的子字符串会更好.还有办法做到这一点吗?
您可以使用模式扩展:
for f in *.jpg.png; do mv -v "$f" "${f/.jpg.png/.png}"; done
Run Code Online (Sandbox Code Playgroud)
虽然您可能仍然遇到类似文件名的问题foo.jpg.png.gif.
如果您真的要删除最后7或8个字符,可以使用子字符串扩展:
for f in *.jpg.png; do mv -v "$f" "${f:0:-7}png"; done
Run Code Online (Sandbox Code Playgroud)
请注意,在子字符串长度中使用负数需要bash版本4或更高版本.
| 归档时间: |
|
| 查看次数: |
876 次 |
| 最近记录: |