我有一个Podfile.lock文件,我想从中提取框架版本(没有括号)。这就是这条线的样子:
PODS:
- MyPrivateFramework (1.0.2.34)
我试图使用sed但没有任何作用。
我尝试过很多东西,这是最新的:
VERSION=$(sed 's/.*MyPrivateFramework (/\1/' Podfile.lock)
echo $VERSION
没有运气..任何人都可以帮助我吗?
答案 0 :(得分:2)
awk
救援!
$ awk -F'[()]' '/MyPrivateFramework/{print $(NF-1)}' file
1.0.2.34
说明:将字段分隔符设置为打开/关闭括号,找到带有关键字的行,打印倒数第二个字段。
更新:您可以照常将输出分配给变量
$ version=$(awk -F'[()]' '/MyPrivateFramework/{print $(NF-1)}' pods); echo $version
1.0.2.34
答案 1 :(得分:1)
使用grep -oP
:
grep -oP 'MyPrivateFramework \(\K[^)]+' file
1.0.2.34
使用sed
:
sed -n 's/.*MyPrivateFramework (\([^)]*\).*/\1/p' file
1.0.2.34
答案 2 :(得分:1)
你走在正确的轨道上;但是有很多选择。这是一个使用awk
和cut
:
VERSION=$(awk '/MyPrivateFramework/ { print $3 }' Podfile.lock | cut -d '(' -f 2 | cut -d ')' -f 1)
echo $VERSION
给出:
1.0.2.34