Clearcase 多文件重命名

发布于 2024-07-09 14:54:32 字数 341 浏览 7 评论 0原文

我在 ClearCase 目录结构中有大量文件,我需要遍历并将所有“makefile”更改为“Makefile”。 我正在考虑 find 的某种组合。 -name makefile 命令带有 exec 标志,但我很难想出 exec 命令。 Cleartool mv 命令不会自动检出目录,因此我需要检出该目录,然后执行 mv。 但据我所知,我唯一需要使用的是 %CLEARCASE_PN% 符号,它为我提供了完整的路径名。 所以我需要从中解析出目录。 我希望比我更擅长 shell 的人能够比我更快地想出正确的命令。

我有cleartool、Windows cmd 和Cygwin 可以在这里使用。

I have a large number of files in a ClearCase directory structure, and I need to go through and change all "makefile" to "Makefile". I'm thinking some combination of the find . -name makefile command with an exec flag, but I'm having a hard time coming up with the exec command. The cleartool mv command does not automatically check out the directory, so I need to check that out and then do the mv. But as far as I can tell, the only thing I have to work with is the %CLEARCASE_PN% symbol, which gives me the full pathname. So I need to parse the directory out from that. I'm hoping someone who's better with the shell than me can come up with the right command quicker than I can puzzle it out.

I have cleartool, Windows cmd, and Cygwin to work with here.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

§普罗旺斯的薰衣草 2024-07-16 14:54:32

我猜你的 cygwin 环境中有 bash。 如果你这样做,你可以使用这个编写一个小bash脚本将上一个问题回答为:

#!/bin/bash
FILE=$1
DIR_NAME=$( dirname $FILE )
FILE_NAME=$( basename $FILE )

#checkout directory $DIR_NAME with whatever the cleartool command is
#rename with cleartool $DIR_NAME/$FILE to $DIR_NAME/new_name

/usr/atria/bin/cleartool checkout -nc $DIR_NAME; 
/usr/atria/bin/cleartool mv $DIR_NAME/$FILE_NAME $DIR_NAME/Makefile;

然后使用以下内容调用脚本:

find . -name orig_name -exec myscript.sh {} \;

警告:

  • 已签出的目录再次签出时将触发错误消息(可以忽略),
  • 您将必须签入所有内容在此过程中签出的目录,否则没有人会看到移动的结果(访问当前视图的目录除外)

I guess that you have bash in your cygwin environment. If you do you can write a small bash script using this answer to a previous question into something as:

#!/bin/bash
FILE=$1
DIR_NAME=$( dirname $FILE )
FILE_NAME=$( basename $FILE )

#checkout directory $DIR_NAME with whatever the cleartool command is
#rename with cleartool $DIR_NAME/$FILE to $DIR_NAME/new_name

/usr/atria/bin/cleartool checkout -nc $DIR_NAME; 
/usr/atria/bin/cleartool mv $DIR_NAME/$FILE_NAME $DIR_NAME/Makefile;

Then call the script with:

find . -name orig_name -exec myscript.sh {} \;

Warnings:

  • a directory already checked-out will trigger an error message when checked-out again (can be ignored)
  • you will have to check-in all the directories checked-out during this process, otherwise nobody will see the result of the move (except the ones accessing this current view)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文