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 次 |
最近记录: |