tcsh:如何更改多个文件的文件扩展名?

kwu*_*hak 1 regex linux shell tcsh

是否有一行命令tcsh来更改一组文件的扩展名?在各种DOS shell中,我曾经使用过以下内容:

ren *.abc *.def
Run Code Online (Sandbox Code Playgroud)

这将重命名.abc以end 结尾的所有文件,而不是.def.在sed而言,这将执行类似如下:

sed -e 's/\(.\)*\.abc$/\1.def/'
Run Code Online (Sandbox Code Playgroud)

在文件名上.我可能会把零碎的东西放在一起以实现*nix中类似的东西,但我猜这里的问题是我缺乏经验tcsh.

任何帮助赞赏.

Cha*_*ens 7

输入这四行.在第一个提示之后,tcsh会告诉你你在foreach循环中.您也可以将其转换为shell脚本并调用该shell脚本.

foreach n ( `ls *.abc` )
set base = `basename $n .abc`
mv $n $base.def
end
Run Code Online (Sandbox Code Playgroud)