blueman
не использует файл конфигурации, вместо этого использует dconf
.
Я использовал dconf-editor
и нашел настройку по адресу:
/org/blueman/transfer/shared-path
[specification]
coincide con un elemento de clasificación (puede ser un carácter o secuencia de caracteres como se define en el algoritmo de clasificación para la configuración regional (, por ejemplo, en configuraciones regionales húngaras en sistemas GNU,dzs
es un elemento de clasificación que se clasifica en algún lugar entre d
ye
))en el conjunto especificado .
Esa especificación puede incluir
a-z
(o[.dzs.]-z
)para cotejar elementos que se cotejan entre a
yz
(tenga en cuenta que generalmente incluye abcdefghijklmnoprstuvwxyz pero en la mayoría de los lugares incluye mucho más ). Además, como POSIX lo deja sin especificar para configuraciones regionales distintas de las configuraciones regionales de POSIX, la cantidad de rangos que se basan en el orden de clasificación varía significativamente entre las implementaciones. x
,[.dsz.]
)[:alpha:]
,[:digit:]
[=e=]
para todos los elementos de clasificación que tienen el mismo peso de clasificación principal quee
(podrían incluir cosas comoé
)Entonces, por ejemplo, [acd[=e=]h-k[:digit:][.dzs.]]
coincide con un elemento de clasificación siempre que sea a
, c
, d
, dzs
o sea equivalente a e
o se coteja entre h
y k
o se clasifica como dígito .
Y si la especificación comienza con ^
, aún coincide con un elemento de clasificación, pero con el conjunto complementado. Eso es cualquier elemento de clasificación excepto los especificados.
Entonces [^a-z]
coincide con cualquier elemento de clasificación que no se coteja entre a
y z
. Por ejemplo, probablemente coincidiría con 1
y ẑ
, posiblemente con X
o DSZ
según la configuración regional y la implementación de grep
, pero no con a
, x
ni z
y probablemente no en é
.
Entonces grep '[^a-z]\{22\}'
coincide con las líneas que contienen una secuencia de 22
elementos de clasificación que se recopilan antes de a
o después de z
.
Mientras que grep -v '[a-z]\{22\}'
coincide con líneas que no contienen una secuencia de 22 elementos de clasificación que se clasifican entre a
y z
.
Hacer coincidir lo mismo sin -v
es casi imposible de implementar, necesitaría hacer coincidir líneas que no contengan más de 21 [a-z]
elementos de clasificación entre dos elementos [^a-z]
. Pero si la configuración regional admite elementos de recopilación de caracteres múltiples -, eso no es realmente posible. Por ejemplo, en esas configuraciones regionales húngaras, [a-z]
coincide con dsz
pero también con d
, s
y z
, por lo que encontrará que allí, [a-z]{0,21}
coincidirá con dszxxxyyyxxxyyyxxxyyyx
pero también sería [a-z]{22}
.
Para locales que no tienen elementos de clasificación de varios -caracteres, puede hacer algo como:
grep '^[^a-z]*\([a-z]\{1,21\}[^a-z]\{1,\}\)*[a-z]\{0,21\}$'
Ahora, también hay algunas implementaciones grep
que admiten sintaxis regulares más avanzadas con opciones que tienen algún operador de negación .
Por ejemplo, la implementación abierta de GNU o ast -de grep
admite perl -como (usando libpcre en GNU grep, la implementación propia de ast -open para ast -open grep )expresiones regulares con la opción -P
que tiene un(?!pattern)
operador de búsqueda negativa -adelante .
(?!pattern)
coincide con ancho cero en cualquier punto de la cadena en cuestión, siempre que el patrón no coincida a partir de ahí. Entonces uno podría usar:
grep -P '^(?!.*[a-z]{22})'
para que coincida al comienzo de la línea, siempre que no vaya seguido de ningún número de caracteres y 22 [a-z]
s. Sin embargo, tenga en cuenta que en PCRE (no en ast -open ), [a-z]
solo coincide con abcdefghijklmnopqrstuvwxyz independientemente de la configuración regional.
ast -open también toma una opción -X
para lo que llaman expresiones regulares aumentadas . Esas expresiones regulares aumentadas tienen un operador !
que niega las cosas. x!
coincidiría con cualquier cosa que no sea x
(, incluida la cadena vacía ).
Entonces, con ast -abierto grep
, también podría hacer:
grep -X '^(.*[a-z]{22}.*)!$'
grep '[^a-z]\{22\}' /usr/share/dict/words
Busca líneas en el archivo /usr/share/dict/words
que contienen una cadena de 22 caracteres que no son letras minúsculas. Es muy probable que el archivo no contenga ninguna de esas líneas. (¿Por qué ese archivo contiene cadenas de 22 letras no -?)
grep -v '[a-z]\{22\}' /usr/share/dict/words
Busca líneas que no contengan cadenas de 22 letras. Probablemente habrá muchas de esas líneas. (Porque la mayoría de las palabras tienen menos de 22 letras.)