Получить Android: versionName с командой оболочки - PullRequest
2 голосов
/ 27 сентября 2011

Я хочу получить versionName из файла AndroidManist.xml с помощью команды оболочки.Я пытался использовать grep и с:

 grep versionName ./AndroidManifest.xml

Я получаю эту строку:

android:versionName="1.0">

Можно ли сузить ее до 1.0 как-то?

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 27 сентября 2011

Попробуйте это:

perl -e 'while($line=<>) { if ($line=~ /versionName\s*=\s*"([^"]+)"/) { print "$1\n";}}' <AndroidManifest.xml

Вы можете поместить это в файл:

Пример: VersionNum.pl

#!/usr/bin/perl

#get the filename from command line
$file = shift or die;

#open the file and read it into $lines var
open(IN,$file) or die;
$lines=join("",<IN>); 
close(IN);

#search the $line var for match and print it
if ($lines =~ m/android:versionName\s*=\s*"([^"]+)"/mgs)  {
   print "$1\n";
}

Тогда просто chmod 755 VersionNumber.plи используйте его с VersionNumber.pl AndroidManifest.xml

2 голосов
/ 05 апреля 2013

Более короткая версия может быть получена из вашего исходного предложения:

grep versionCode AndroidManifest.xml | sed -e 's/.*versionName\s*=\s*\"\([0-9.]*\)\".*/\1/g'
...