Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding search and replace to the "cd" command

I'm trying to figure out a way to search and replace in the command line. Preferably the solution would work in tcsh. Here's what I want to do.

$ 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/

The script would search from the end of the line and find the first occurrence of a matching directory structure and then cd into that directory.

I'm fluent in python and this script woulds be easy to write in this language but python runs in a process so changing the current directory of one process has no effect on the current work directory of other existing processes.

What is the best way to write such a script? What is the most efficient way of accomplishing this task? My directory structures can get quite large with many thousands of folders so it needs to be quick.

like image 648
D. Ostler Avatar asked Dec 03 '25 21:12

D. Ostler


1 Answers

Let example.py be a script that outputs some shell commands.

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

Then you can execute the output of that script, in the current shell, with backticks or the $(...) notation.

mob ~ $ $(./example.py)
mob ~/foo/bar/baz $ echo $PWD
mob ~/foo/bar/baz $ /home/mob/foo/bar/baz
like image 111
mob Avatar answered Dec 05 '25 10:12

mob



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!