如何获得与 sed 的第一场比赛?

And*_*nko 4 unix linux shell sed

我厌倦了这个 sed :D 所以我有一个小文件:

version = "1.1"
group= "com.centurion.eye"
archivesBaseName = "eye"

impmet {
    version = "4.1614"
    runDir = "eclipse"
}
Run Code Online (Sandbox Code Playgroud)

这是我的 sed 命令:

sed -n -e '/version/ s/.* = *//p' "build.gradle"
Run Code Online (Sandbox Code Playgroud)

我只需要获得 1.1 版。所以当我执行这个命令时,输出是:

"1.3"
"4.1614"
Run Code Online (Sandbox Code Playgroud)

但想要的是:

"1.3"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?谢谢!

Ign*_*ams 7

匹配第一个后退出。

sed -n -e '/version/ {s/.* = *//p;q}' build.gradle
Run Code Online (Sandbox Code Playgroud)


JRG*_*JRG 6

将您的命令输出通过管道传输head -1到仅获取第一个条目。

sed -n -e '/version/ s/.* = *//p' "build.gradle" | head -1
Run Code Online (Sandbox Code Playgroud)

样品运行

[ /c]$ cat build.gradle
version = "1.1"
group= "com.centurion.eye"
archivesBaseName = "eye"

impmet {
    version = "4.1614"
        runDir = "eclipse"
        }
[ /c]$ sed -n -e '/version/ s/.* = *//p' build.gradle | head -1
"1.1"
Run Code Online (Sandbox Code Playgroud)