如何在cshell脚本中重命名多个文件名?

时间:2015-12-12 00:11:33

标签: unix csh

我有一个c shell脚本,它有两行,它创建一个目录并将一些文件复制到其中。我的问题如下 - 正在复制的文件看起来像abc.helloabc.nameabc.date等...我如何剥离abc并将其复制过来如.hello.name.date ..等等。我是新手......任何帮助都将不胜感激!

mkdir -p $home_dir$param    
cp /usr/share/skel/* $home_dir$param

1 个答案:

答案 0 :(得分:1)

您正在寻找类似basename的内容:

例如,在Bash中,您可以获得基本名称,文件后缀如下:

filepath=/my/folder/readme.txt
filename=$(basename "$filepath")  # $filename == "readme.txt"
extension="${filename##*.}"       # $extension == "txt"
rootname="${filename%.*}"         # $rootname == "readme"

附录:

  1. 关键点是" basename"。请参阅" man basename"第一页链接到上面。这是另一个应该让事情更清晰的例子:

    basename readme.txt .txt # prints "readme"

  2. "基名"是一个标准的* nix命令。它适用于任何外壳;它可以在大多数平台上使用。

  3. 展望未来,我强烈建议您不要在csh中编写脚本,如果可以避免的话: