由于搞砸了我的第一次尝试,我现在有一个充满文件的目录,这些文件现在命名如下:
valery-special-music-poetry.txt.mtxt.md.md.txt.mtxt.md.md.md
我需要命名:
valery-special-music-poetry.md
如何从命令行执行此操作?
我正在运行:GNU bash,版本 3.2.48(1)-release (x86_64-apple-darwin12)
由于搞砸了我的第一次尝试,我现在有一个充满文件的目录,这些文件现在命名如下:
valery-special-music-poetry.txt.mtxt.md.md.txt.mtxt.md.md.md
我需要命名:
valery-special-music-poetry.md
如何从命令行执行此操作?
我正在运行:GNU bash,版本 3.2.48(1)-release (x86_64-apple-darwin12)
for file in *; do mv "$file" "${file/.*./.}"; done
壳牌本身:
for i in *; do mv "$i" "${i%%.*}.${i##*.}"; done
除非你的目录是单级的,否则我建议使用 find,如果你在 Apple 中有的话。
这可能会帮助你
#!/bin/bash
for filename in *
do
x=`echo $filename | sed 's/\..*\./\./g'`
mv $filename $x
done
将其保存到名为 rename.sh 的文件中
chmod +x rename.sh
./rename.sh
ls -1 *.txt.mtxt.md.md.txt.mtxt.md.md.md | nawk -F"." '{cmd="mv "$0" "$1".md";system(cmd)}'