我正在研究一个检查文件是否存在的脚本。如果存在,那么我想得到路线。
我的工作如下:
BusinessArea
这将返回文件的路径:
RESULT_=$(find $PWD -name someRandom.json)
我陷入了在文件之间导航的麻烦。有没有一种方法可以将/Users/guest/workspace/random_repo/random/some_folder/someRandom.json
替换为someRandom.json
,所以我可以这样做:
''
我尝试使用here提供的解决方案,但无法正常工作。我尝试了以下方法:
cd /Users/guest/workspace/random_repo/random/some_folder/
这不会返回此类文件或目录。
答案 0 :(得分:2)
您想要参数扩展,而不是命令替换。
RESULT="${RESULT%/*}/"
答案 1 :(得分:2)
给定:
$ echo "$result"
/Users/guest/workspace/random_repo/random/some_folder/someRandom.json
您可以获得文件名:
$ basename "$result"
someRandom.json
或路径:
$ dirname "$result"
/Users/guest/workspace/random_repo/random/some_folder
或者您可以使用子字符串删除:
$ echo "${result%/*}"
/Users/guest/workspace/random_repo/random/some_folder
或者,给定文件名和完整路径,只需删除文件名:
$ echo "$tgt"
someRandom.json
$ echo "${result%"$tgt"}"
/Users/guest/workspace/random_repo/random/some_folder/
有很多Bash字符串操作的例子:
Bash Hacker's Parameter Expansion
旁注:避免对Bash变量使用CAPITAL_NAMES。根据惯例,它们保留供Bash使用...