sed: o que significa “/”?

3
x='src/lstat64 $TEST_DIR/$tmp.1 | sed -n -e '/ Links: /s/.*Links: *//p''

Neste script. Eu entendo essa parte "/s/.*Links: *//p'" a única coisa que não entendo é '/ Links: ' o que significa "/ " ?

    
por BufBills 31.03.2014 / 06:41

3 respostas

6

/ Links: / é um filtro de endereço. Significa: "Aplique a seguinte operação apenas às linhas que correspondem ao filtro." Neste caso, o filtro é um regex; também pode ser um número de linha, uma área de linha, uma combinação de regex inicial e de regex de parada e até mesmo uma condição "cada linha n-ésima" com algumas implementações sed .

    
por 31.03.2014 / 06:48
3

Você tem um mal-entendido. seu comando pode ser interpretado como:

sed - n -e '/pattern/ s/pattern/replace pattern/p'

Portanto, os dois primeiros / pertencem a /pattern/ , o que significa que corresponde a um regex:

/regexp/
          Match lines matching the regular expression regexp.
    
por 31.03.2014 / 06:50
2

the only thing I don't understand is '/ Links: '

Suas linhas sed filtros combinam com o padrão Links: (com espaço à esquerda e à direita) e executam a substituição

s/.*Links: *//

Além disso, usar -n suprime a impressão automática de espaço de padrão e p imprime o espaço de padrão atual.

Para resumir, o sed pipeline deve imprimir apenas as linhas correspondentes a Links: na entrada depois de executar a substituição s/.*Links: *// .

Citações de man sed :

   -n, --quiet, --silent

          suppress automatic printing of pattern space


   p      Print the current pattern space.

   /regexp/
          Match lines matching the regular expression regexp.


   s/regexp/replacement/
          Attempt to match regexp against the pattern space.  If
          successful, replace that portion matched with replacement. The
          replacement may contain the special character & to refer to that
          portion of the pattern space which matched, and the special
          escapes  through  to refer to the corresponding matching
          sub-expressions in the regexp.
    
por 31.03.2014 / 06:48

Tags