Run*_*ble 4 scripting linux shell
我有一个充满以 .xxx 结尾的文件的目录。( Apple.xxx, Orange.xxx, Bannana.xxx)
我想将他们的扩展名更改为 .yyy。( Apple.yyy, Orange.yyy, Bannana.yyy)
使用基本 shell 命令完成此操作的最快方法是什么?
for i in *.xxx; do
mv "$i" "${i%.*}.yyy"
done
Run Code Online (Sandbox Code Playgroud)
"${i%.*}" 中的百分号表示使用百分号后面的glob模式,将其应用于变量 i 的值,并从该值的尾端删除可能的最短匹配项。这称为参数/变量扩展,有很多用途。您也可以使 glob 成为最长可能的匹配,或者也可以从一开始就使 glob 匹配。 这篇 Linux Journal 文章是关于参数扩展的。
它放在双引号中,这样如果文件名中有空格并且 IFS 变量设置为包含空格(规范),文件名仍将作为一个参数传递给 mv。
| 归档时间: |
|
| 查看次数: |
1142 次 |
| 最近记录: |