Estoy leyendo este artículo . Hay una declaración allí que dice:
ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -s $(xwininfo -root | grep 'geometry' | awk '{print $2;}') -r 25 -i :0.0 -sameq -f mpeg -ar 48000 -s wvga -y sample.mp4
Cuando ejecuto el comando me sale un error con la sección que dice:
xwininfo -root | grep 'geometry' | awk '{print $2;}'
La razón es que cuando usa este comando en mi computadora, genera:
1360x768+0+0
¿Cómo elimino la última parte de la salida de resolución de pantalla en 1360x768
lugar de 1360x768+0+0
?
command-line
awk
Guest123ABC
fuente
fuente
Respuestas:
Puede usar
perl
para obtener solo la resolución:O incluso más corto con solo GNU
grep
:Explicación : La mirada retrospectiva
(?<=geometry )
afirma que, en la posición actual de la cadena, lo que precede son los caracteres "geometría". Si la afirmación tiene éxito, el motor coincide con el patrón de resolución.Una mirada atrás no "consume" ningún carácter en la cadena. Esto significa que después del paréntesis de cierre, el motor regex se queda parado en el mismo lugar en la cadena desde la que comenzó a buscar: no se ha movido. Desde esa posición, el motor puede comenzar a emparejar caracteres nuevamente.
Fuente: http://www.rexegg.com/regex-disambiguation.html#lookbehind
fuente
Mi
awk
enfoque puro , dividir la cadena en campos basados en espacios y signos más:Un método similar a la expresión Perl de Sylvain pero con
sed
:fuente
Tal vez podrías usar
awk
substr
. En tu caso particular:O si quieres que funcione en cualquier caso:
espero que esto ayude.
fuente
Otros ya han proporcionado respuestas para la operación completa, pero solo para responder ¿Cómo llego de
1360x768+0+0
a1360x768
? entonces recomendaría usarcut
como la solución más simple posible, por ejemplofuente
También probé ejemplos de captura de pantalla de línea de comandos hace unas semanas. Como solución alternativa puedes usar
para detectar la resolución de pantalla.
Para capturar la pantalla con audio interno y micrófono, puede usar
fuente