¿Cómo ejecutar el comando awk en Windows 7?

¿Cómo ejecutar el comando awk en Windows 7?

Tengo el siguiente comando adb+ awkque funcionará bien en un entorno Linux[Árbitro].

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

Pero necesito ejecutar este comando en una PC con Windows 7 que tieneGnuWin32 mirándosepaquete instalado. Puedo ejecutar comandos awk desde la C:\Program Files (x86)\GnuWin32\bincarpeta y ejecutar comandos adb desde la C:\Program Files (x86)\Android\android-sdk\platform-toolscarpeta. Necesito ejecutar el comando anterior y obtener la lista de paquetes que tienen permisos de CÁMARA permitidos.

La configuración de las variables ambientales de Windows para AWKPATH y también en las variables PATH no funcionó. Así que simplemente copié el contenido de la bincarpeta de GnuWin32 gawk y lo pegué en la platform-toolscarpeta. Pero cuando ejecuto el símbolo del sistema obtengo:

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

¿Cómo puedo ejecutar el comando anterior en Windows? o ¿Cuál es la expresión correcta que puedo ejecutar?

Respuesta1

Intente reemplazar el 'con ". Para que el comando se vea así,

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

Échale un vistazo también:Grep y Awk en Windows Char no válido en error de expresión

Respuesta2

 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.

información relacionada