【问题标题】:script to rename folders & files based on input files根据输入文件重命名文件夹和文件的脚本
【发布时间】:2013-12-03 20:59:10
【问题描述】:

我从文档管理系统导出文件夹和文件,我得到的是一组文件夹和嵌套文件和文件夹,它们具有随机名称。每个文件夹和文件都有一个扩展名为 .esw 的描述符文件,其中包含一个名为 SHORTNAME 的变量,该变量包含真正的文件夹和文件名。我的挑战是现在将这些文件夹和文件重命名为其真实名称。

我找到了一个执行此操作的脚本,但它在第 13 行停止,其中显示“$0”。我所做的唯一更改是移除 dos2unix 实用程序,因为我没有它,也不知道它的作用。

任何提示如何让它在 shell 或 vbs 中工作?

#!/bin/sh 

for fl in $(ls) 
do 
flo="$(echo $fl | sed s/\.esw//)" 
if [ -d $flo ] 
then 
echo "cd $flo" 
echo "$0" 
echo "cd -" 
cd $flo 
$0 
cd - 
echo "checking $fl" 
#    dos2unix -q -n $fl $fl 
# Remove empty spaces and nonsense from description (replace with "_") 
sd="$(cat $fl | grep SHORTDESC | sed s/\SHORTDESC=// | sed s/\ /_/ | sed s/\ /_/ | sed    
s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ 
/_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\\./_/)" 
rm $fl 
if [[ "$sd" = '' ]] 
then 
  echo "won't do that" 
else 
  echo "mv $flo $sd" 
  mv $flo $sd 
fi 
else 
echo "$fl" > $$.tmp 
if cat $$.tmp | grep esw > /dev/null 
then 
  rm $$.tmp 
  if cat $fl | grep SHORTDESC > /dev/null 
  then 
    #dos2unix -q -n $fl $fl 
    ex="$(cat $fl | grep DOCEXT | sed s/\DOCEXT=\.//)" 
    sd="$(cat $fl | grep SHORTDESC | sed s/\SHORTDESC=// | sed s/\ /_/ | sed s/\ /_/ | 
 sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed 
s/\ /_/ | sed s/\ /_/ | sed s/\ /_/ | sed s/\\./_/)" 
    rm $fl 
    echo "rm $fl" 
    echo "mv $flo.* $sd.$ex" 
    rm $fl 
    mv $flo.* $sd.$ex 
#      else 
#        echo "$fl -- no SHORTDESC!" 
fi 
else 
  rm $$.tmp 
fi 
fi 
done

【问题讨论】:

  • 你能给我们更多关于这个脚本的信息吗?或者你在哪里找到的?

标签: bash file-rename


【解决方案1】:

1) 你为什么不通过你的包管理器安装dos2unix

2) 基本上,第 13 行试图在您的PATH(系统搜索可执行文件的目录)中运行一个与当前脚本同名的文件。 很可能,脚本旨在从您的 PATH 中的目录运行。

尝试将其放在您的PATH 中列出的目录中(请参阅echo $PATH)。如果您无法写入其中任何一个,请将您的PATH 附加一个您可以写入的目录并将脚本移动到那里。

那么你不应该得到那个错误。

【讨论】:

    猜你喜欢
    • 2018-12-23
    • 2015-01-29
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多