首先我必须说我的英语不是很好。我必须完成学习任务,但我遇到了问题。我必须在正确的目录中创建带有版本的文件。信息在文本文件中,例如:
com.amazonaws.services.cloudwatch;version=1.1.5
这是目录的方向,我必须在其中创建文件:
1.1.5
现在我写:
egrep 'version=' bamboo.log | egrep --color -o '[^[:space:],\"](.+\.)+.+;version=[\"]*([[:digit:]]+\.)+[[:digit:]][\"]*' > tmp
cut -d ';' -f 1 tmp| tr '.' '/'| sed 's/$/\/version/'
我会做类似的事情:
cut -d ';' -f 1 tmp| tr '.' '/'| sed 's/$/\/version/'| echo $(cut -d '=' -f 2 < tmp) ) > -
当然不行。
但我不知道如何将管道(来自管道的内容)粘贴为文件的名称,并将简单版本粘贴为“echo”。
你能帮我解决这个问题吗?
答案1
您已经拥有了所需的所有工具,只是它无需单独调用sed
就能完成所有egrep
操作,因此您让问题变得更加复杂。
我不知道文件中还有什么,但以下内容将隔离您给出的示例中的版本字符串:
sed<bamboo.log -n 's/^.*;version=//pg'
如果您想使用返回的字符串作为文件名,只需使用构造$()
,如下所示:
FileName=$(sed<bamboo.log -n 's/^.*;version=//pg')
我找到了一个很好的参考/教程sed
这里。