从目录(BASH)中的所有文件中删除多个扩展名



多亏了我第一次尝试执行此操作的尝试,我现在有一个目录,其中包含现在命名的文件:

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

shell本身:

for i in *; do mv "$i" "${i%%.*}.${i##*.}"; done

除非您的DIR是单一级别,建议您使用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)}'

相关内容

  • 没有找到相关文章

最新更新