Должен ли `/usr/lib/binfmt-support/run-detectors` выбирать моно или вино для запуска окон или исполняемый файл .net? [дубликат]

1s/^$//p imprime la primera línea, si está vacía.

/./,/^$/coincide con líneas desde la primera línea no -vacía hasta la primera línea vacía encontrada. No es codicioso en el sentido de que un calificador de expresiones regulares:sedno puede mirar hacia adelante al archivo o retroceder, por lo que debe detenerse la primera vez que coincida el patrón final.

Después de la línea final, la búsqueda de la línea inicial comienza de nuevo, por lo que la siguiente línea no -vacía comienza nuevamente el rango. En efecto, el rango coincide con líneas contiguas que no están vacías, más la primera que sigue vacía.

Dado que el rango se usa como /./,/^$/!d, se eliminan todas las líneas que no coincidan. Esto incluye la primera línea si está vacía, razón por la cual la primera regla la imprime explícitamente.

Sin la regla 1s/^$//p, la primera línea se eliminaría si estuviera vacía, aunque en realidad no se "repita".

$ echo $'\nfoo' | sed '1s/^$//p;/./,/^$/!d'

foo
$ echo $'\nfoo' | sed '/./,/^$/!d'
foo
$

En su prueba, el rango /#/,/#/es un poco diferente ya que comienza y termina con el mismo patrón. Line #1coincide con el patrón inicial, (por lo que se imprimen las líneas vacías intermedias)Line #2coincide con el final, (las siguientes líneas vacías no son )y en Line #3, el rango comienza de nuevo.

En el otro, el patrón inicial es /#1/, pero eso solo se encuentra una vez en la entrada.

7
04.10.2014, 04:16
0 ответов

Теги

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