如果我运行此文件,它可以正常工作并输出我期望的行:
workspaceFile=`cat tensorflow/workspace.bzl`
echo $workspaceFile | grep -oP '\/[a-z0-9]{12}.tar.gz'
但是,如果运行此命令,我得到的只是终端中的空白输出:
workspaceFile=`cat tensorflow/workspace.bzl`
TAR_FILE_WITH_SLASH=$workspaceFile | grep -oP '\/[a-z0-9]{12}.tar.gz'
echo $TAR_FILE_WITH_SLASH
文件很长,为简单起见,我将在此处添加一个缩短的版本:
tf_http_archive(
name = "eigen_archive",
urls = [
"https://mirror.bazel.build/bitbucket.org/eigen/eigen/get/6913f0cf7d06.tar.gz",
"https://bitbucket.org/eigen/eigen/get/6913f0cf7d06.tar.gz",
],
答案 0 :(得分:1)
您需要使用$()
语法,回显workspaceFile
的内容,然后通过管道发送grep
命令:
TAR_FILE_WITH_SLASH="$(echo $workspaceFile | grep -oE '/[a-z0-9]{12}\.tar\.gz')"
此外,请注意,此处不需要PCRE正则表达式,可以使用POSIX ERE正则表达式(即将P
替换为E
)。您甚至可以在这里使用POSIX BRE模式,例如grep -o '/[a-z0-9]\{12\}\.tar\.gz'
。点必须转义以匹配文字点,并且/
在这里不是特殊的,不需要转义。
请参见online demo。
答案 1 :(得分:0)
路径是什么?
return new Blob(Object.values(localStorage)).size;