Bash comodín para que coincida exactamente con n caracteres

Respuestas:

9

Aún no.

Con la extglobopción, bashagrega algunos de los kshoperadores de globbing extendidos pero no el {x,y}(pattern)uno.

En ksh93, usas:

{5}(?)

Con zshcon la extendedglobopción:

?(#c5)

(Notará que ninguno de ellos es más corto que ?????sin embargo).

En bash, puedes hacer:

$(printf '%.0s?' {1..5})

aunque eso no es una mejora y se basa en $IFSno contener ?.

Stéphane Chazelas
fuente
¿Alguno de estos permite usar una variable para 5?
Random832
@ Random832, sí, todos menos el tercero con bash(ese también funcionaría con ksh93 o zsh en la emulación sh / ksh). Con bash, puedes usar $(seq "$n" | tr -cd '\n' | tr '\n' '?')en su lugar.
Stéphane Chazelas
O bien $(yes '?' | tr -cd '?' | head -c $n), esto es divertido. Además, ¿no podría eliminar la dependencia de $ IFS poniéndola entre "comillas"?
Random832
@ Random832, no. Esta vez (y esa es probablemente la única vez que querrá hacer eso), desea usar el split+globoperador (dejando una expansión sin comillas) pero solo la globparte (desea que ?????se expanda ese patrón, lo que no sucedería) si lo citó $(...)) Tenga en cuenta que utiliza ese split+globoperador con su sin comillas $nque agrega otro requisito que $IFSno debe contener dígitos. Ese puede y debe citar.
Stéphane Chazelas