Grep 3 заглавные буквы и цифры в две переменные [закрыто]

В Ubuntu 17 и в XFCE копирование и вставка средней кнопкой мыши вообще не работала. То же самое относится к Fedora 26 XFCE, такое же решение работает и для Fedora 26 Вставка средней кнопки мыши (q.e.d.):

РЕШЕНИЕ

Чтобы включить функцию вставки средней кнопкой мыши, отредактируйте файл xinput.

  1. Запросите ваше устройство, чтобы идентифицировать вашу мышь (моя была указана как устройство 10):

     список xinput
     
  2. Список настроек мыши:

     xinput list-props 
  3. Измените значение для «Включена промежуточная эмуляция libinput (294):» (от root):

     sudo xinput set-prop 10 «Включена промежуточная эмуляция libinput» 1
     
  4. Проверить, изменилось ли значение на 1:

     xinput list-props 10
     

Вывод должен быть libinput Middle Emulation Enabled (294): 1

Большое спасибо Gilles (https://unix.stackexchange.com/users/885/gilles ) кто нашел решение!

Подробнее: https://wiki.ubuntu.com/X/Config/Input

1
03.06.2018, 00:20
2 ответа

Para hacerlo de una vez:

eval "$(yourscript | awk -v q=\' '
  $1 ~ /^[[:digit:]]+(\.[[:digit:]]+)?[MGT]$/ {
    print "SIZE=" $1
  }
  match($0, /[[:upper:]]{3}/) {
    print "PROJECT="q substr($0, RSTART, RLENGTH) q
  }')"

Tenga en cuenta que algunas implementaciones awkcomo nawko Solaris, mawko versiones anteriores de gawkno son compatibles con {x,y}/ {x}operadores de intervalo de expresión regular (en el caso de versiones anteriores (y no antiguas )de gawk, puede ejecutarlo con POSIXLY_CORRECT=anythingen el entorno para que las admita aunque )a pesar de que ha sido estándar durante más de 25 años. Con esos, necesitaría reemplazar [[:upper:]]{3}con [[:upper:]][[:upper:]][[:upper:]].

0
28.01.2020, 00:34

Dudo mucho que esto sea lo que necesita, pero esto responde palabra por palabra a su pregunta actual.

Primera parte (asumiendo GNU grepo compatible):

project="$(yourscript|grep -oE '[[:upper:]]{3}')"

Segunda parte:

size="$(yourscript|grep -oE '[[:digit:]]+(\.[[:digit:]]+)?[MGT]')"

Combinado, es más sencillo ejecutar el script una vez, guardar la salida y grep y asignar en la salida guardada:

output="$(script)"
size="$(printf '%s\n' "$output"|grep -oE '[[:digit:]]+(\.[[:digit:]]+)?[MGT]')"
project="$(printf '%s\n' "$output"|grep -oE '[[:upper:]]{3}')"

Alguna explicación
grep -o-solo devuelve el objeto grepped, no toda la línea
-E-Expresión regular extendida
[[:upper:]]-coincide solo con letras mayúsculas ([A -Z], pero independientemente de la configuración regional)
{3}-limita la coincidencia a exactamente 3 caracteres consecutivos.
[[:digit:]]-coincidencia de dígitos ([0 -9], de nuevo sin tener en cuenta la configuración regional)
+-coincide 1 o más veces
\.-coincide con un punto
(...)?-coincide 0 o 1 veces -esto asegura que los números sin un punto decimal también puedan capturarse
[xy]-coincidió exactamente con uno de los elementos x o y.

0
28.01.2020, 00:34

Теги

Похожие вопросы