我已经尝试使用unix工具从不同的工具中提取文件中的模式的方法很多次,但是我似乎无法让他们做我想做的事情。所以我有一个像这样的文件:
[blah]
project=abc123
ON#IRUjdi2ujnq!De
我想捕获项目名称。
我尝试使用grep,egrep,awk和sed,但是我无法使它们正常工作。这是我目前的尝试。
cat file | sed -n "s/project = \(.*\)/\1/p"
这是当前输出
abc123
ON#IRUjdi2ujnq!De
出于某种原因,它正在考虑匹配最后两行。我以为我的正则表达式需要在project =
上进行文字匹配,但事实并非如此。
某些UNIX向导可以在这里帮助我吗?任何标准的Unix工具都可以。
------ 编辑 ------
所以实际上我的问题略有不同。我实际上在做
gcloud config list project | sed -n "s/project = \(.*\)/\1/p"
对不起,我认为这不会有所作为,但是显然这是问题所在。
如果您这样做gcloud config list project >> file
它实际上只会将项目列表输出到文件中,然后打印
Your active configuration is: [default]
到终端,这就是把事情搞砸了。如果我将执行gcloud命令的整个输出手动写入一个文件,然后运行它,那么它实际上就可以了。因此,关于gcloud如何输出其数据,这有点奇怪。
答案 0 :(得分:0)
使用grep
,您可以做到:
grep -o '^project=.*' file | cut -f2- -d=
结果:
abc123