将搜索和替换添加到 "cd" 命令

Adding search and replace to the "cd" command

我正在尝试找出一种在命令行中搜索和替换的方法。最好该解决方案可以在 tcsh 中运行。这就是我想要做的。

$ echo $PWD
/projects/apples/001/0440/my/files/are/here/
$ cd 0999
/projects/apples/001/0999/my/files/are/here/
$ cd oranges
/projects/oranges/001/0999/my/files/are/here/
$ cd were
/projects/oranges/001/0999/my/files/were/here/

脚本将从行尾开始搜索并找到匹配目录结构的第一个匹配项,然后 cd 进入该目录。

我精通 python,这个脚本用这种语言很容易编写,但是 python 在一个进程中运行,因此更改一个进程的当前目录对当前目录没有影响其他现有进程的工作目录。

编写这样的脚本的最佳方法是什么?完成这项任务最有效的方法是什么?我的目录结构可能会变得非常大,有数千个文件夹,因此需要快速。

example.py成为一个输出一些shell命令的脚本。

#!/usr/bin/python
# example.py
print("cd foo/bar/baz")

然后您可以在当前 shell 中使用反引号或 $(...) 符号执行该脚本的输出。

mob ~ $ $(./example.py)
mob ~/foo/bar/baz $ echo $PWD
mob ~/foo/bar/baz $ /home/mob/foo/bar/baz