所以我编写了这段代码:
sed -n -e '0,/version/{s/.*: *//p}' "$path"
$ path是此文件的实际路径:
name: CSaveBackupWorld
main: ru.centurion.savebackupworld.SBW
version: 3.6
author: ASTRO
load: STARTUP
我只想获得版本值,我的意思是3.6,但不是我得到这个输出:
CSaveBackupWorld
ru.centurion.savebackupworld.SBW
3.6
这真的很奇怪,当然我只为版本制作了一个过滤器,但它也显示了名称和主要内容。我做错了什么?
第一个问题彻底解决了!这是最后一个: 我还有一个文件:
apply plugin: 'jee'
version = "1.3"
group= "com.centurion.eye" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "eye"
我怎样才能获得这个版本?只有1.3。
答案 0 :(得分:1)
您不必要地将0,
添加到您的命令中:
sed -n -e '/version/{s/.*: *//p}' "$path"
应该工作得很好。 0,
使sed
打印从文件开头到匹配行的所有内容。
或者,awk
可能更具可读性:
awk '/version/{print $2}' "$path"
答案 1 :(得分:1)
只是
sed -n -e '/version/ s/.*: *//p' "$path"
会这样做
答案 2 :(得分:1)
您可以一次解决您的问题。
sed -n 's/^version.*\([0-9]\.[0-9]\).*/\1/p' "$path"