ls с подстановочным знаком

Sed не подходит для этого. Я думаю, что для достижения описанного выше могут потребоваться некоторые расширенные функции. Вот он-лайн perl, который заменяет любое количество двойных запятых в двойных кавычках на <пробел> | <пробел> .

$ echo '012345,"[ThinkPadT2/3Gband,Mac,Apple]",Lenovo,"iPhone3G,A1241"' | perl -pe 's/,(?!(?:"[^"]*"|[^"])*$)/ | /g'
012345,"[ThinkPadT2/3Gband | Mac | Apple]",Lenovo,"iPhone3G | A1241"
7
27.05.2018, 04:13
2 ответа
ls /dev/sd$device* # or
ls "/dev/sd$device"*

No debe citar los metacaracteres globbing si desea que se realice globbing.

11
27.01.2020, 20:14

El usuario ilkkachu dio una buena explicación de cómo el almacenamiento en búfer afecta la salida. Mi respuesta describe lo que sucedería si elimina el almacenamiento en búfer, p. reemplazando las llamadas fprintfcon llamadas a write. En este caso, obtendría una alternancia estricta de as y bs. Esto se debe a que la llamada a writeprovoca una reprogramación :escribiendo en bloques de un proceso, dando el turno al otro proceso, y así sucesivamente.

Imaginemos qué pasaría si la llamada a escribir no se bloqueara. Entonces tendríamos que considerar escalas de tiempo :obtendría ejecuciones mucho más largas de as y bs que solo uno o dos a la vez, porque los procesadores modernos son capaces de ejecutar miles de millones de instrucciones por segundo, pero el la frecuencia de programación es típicamente algo entre 100 Hz y 1000 Hz. Un proceso podría ejecutar hasta decenas de millones de instrucciones antes de que se anule y el otro proceso esté programado para ejecutarse. Incluso teniendo en cuenta la sobrecarga de llamadas al sistema, esto daría tiempo al proceso para imprimir cadenas muy largas de aso bs consecutivos.

-121 ---118524 ​​-

Las comillas dobles le dicen al shell que deje el *tal como está -en lugar de expandirlo. Esto funcionará:

device="a"
ls "/dev/sd${device}"*
8
27.01.2020, 20:14

Теги

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