1 votes

Comment exécuter la commande awk sous Windows 7 ?

J'ai les éléments suivants adb + awk qui fonctionnera parfaitement dans l'environnement Linux [Réf] .

adb shell dumpsys package | awk -v RS='\n +Package' '/android\.permission\.CAMERA/{print $1}'

Mais j'ai besoin d'exécuter cette commande sur un PC Windows 7 qui a GnuWin32 Gawk installé. Je peux exécuter des commandes awk à partir de l'interface C:\Program Files (x86)\GnuWin32\bin et exécutez les commandes adb à partir du dossier C:\Program Files (x86)\Android\android-sdk\platform-tools dossier. J'ai besoin d'exécuter la commande ci-dessus et d'obtenir la liste des paquets qui ont les permissions CAMERA.

La définition des variables d'environnement Windows pour AWKPATH et également dans les variables PATH n'a pas fonctionné. J'ai donc copié le contenu du répertoire de GnuWin32 gawk bin et collé dans le dossier platform-tools dossier. Mais lorsque je lance l'invite de commande, j'obtiens,

awk: +Package'
awk:         ^ invalid char ''' in expression

Comment puis-je exécuter la commande ci-dessus dans Windows ? ou Quelle est l'expression correcte que je peux exécuter ?

1voto

Leo Chapiro Points 15089

Essayez de remplacer le ' con " . La commande se présente donc comme suit,

adb shell dumpsys package | awk -v RS="\n +Package" "/android\.permission\.CAMERA/{print $1}"

Jetez-y également un coup d'œil : Grep et Awk sous Windows Erreur de caractère invalide dans l'expression

0voto

szamani20 Points 173
 It all depends on the version of GAWK you're running -- and how important it is to keep some old batch scripts working without modification.  (These days, if you're using AWK on Windows, it is almost certainly really GAWK.)  As duDE pointed out, changing the single quotes to double quotes will work -- but then you'll have to escape any double quotes inside the program.

 I just recently ran into this problem when I upgraded to GAWK 5.0.1 from v3.1.7, still running Windows 7.  (Yeah, I know...)  3.1.7 works just fine with the single quotes.  So, if you have some old scripts you want to keep without editing them or you just like the *established way* of running AWK, or just don't need whatever the newer versions bring, you might consider d/l'ing an older version.
 I don't know when it was changed, but someone dropped the ball in GAWK development somewhere between those two versions.  (I hate to say it, because I have been a pretty ardent M$ basher over the years and I have been a huge fan of public domain software and made a few contributions to the cause over the almost 30 years I've been programming and using other people's contributions.)  Truth is, we can't blame this one on Windows; it still works just fine with the old GAWK.  It's GAWK that introduced this problem.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X