I am working on project where main directory for code is prjcode.
some user will checkout code in home directory so their path will become /home/shekhar/prjcode/src
some may checkout code in any directory like /home/shekhar/31jan/prjcode/src/
Project need some scripts to run on prjcode path how to find/extract path to prjcode/
Input path- /home/shekhar/prjcode/src/ output path- /home/shekhar/
Input path- /home/shekhar/31jan/prjcode/src/ output path- /home/shekhar/31jan/
Input path- /home/shekhar/src_code/31jan/prjcode/src/ output path- /home/shekhar/src_code/31jan/
please suggest. Basically need path before prjcode directory .
CodePudding user response:
Basically you can use echo ${pth%"prjcode/src/"} where pth is your path variable.
# pth="/home/shekhar/prjcode/src/"
# echo ${pth%"prjcode/src/"}
/home/shekhar/
#
# pth="/home/shekhar/31jan/prjcode/src/"
# echo ${pth%"prjcode/src/"}
/home/shekhar/31jan/
#
# pth="/home/shekhar/src_code/31jan/prjcode/src/"
# echo ${pth%"prjcode/src/"}
/home/shekhar/src_code/31jan/
CodePudding user response:
For arbitrary delimiters, I often go with an awk solution:
$ paths=(/home/shekhar/prjcode/src/ /home/shekhar/31jan/prjcode/src/ /home/shekhar/src_code/31jan/prjcode/src/)
$ for path in "${paths[@]}"; do awk -F'prjcode/' '{print $1}' <<<$path; done
/home/shekhar/
/home/shekhar/31jan/
/home/shekhar/src_code/31jan/
And to unpack that into something very simple to read
echo "/home/shekhar/src_code/31jan/" | awk -F'prjcode/' '{print $1}'
