Por favor, explique o que significa o seguinte comando:

0
awk -F'[ ()+:]+' '

Eu uso no meu script. Com este caso, posso aproveitar o tempo entre parênteses, por exemplo:

Fri Dec 18 11:13 - 11:15  (00:02)    
Fri Dec 18 09:11 - 19:42 (1+10:31)

Mas como funciona? Alguém poderia me explicar?

    
por Qas 02.01.2016 / 02:18

1 resposta

5

awk divide o registro de entrada em campos e usa o separador de campos ( FS ) para fazer isso. A opção -F é usada para definir FS . Quando FS tem vários caracteres, é tratado como uma expressão regular.

Nesse caso, FS é [ ()+:]+ :

  • [...] , chamado de expressão de colchetes, é usado para corresponder a um dos muitos caracteres. [ ()+:] significa qualquer um dos espaços, parêntese, + ou : caracteres.
  • + após um caractere ou uma expressão de colchetes, etc., corresponde a um ou mais desse caractere, expressão etc.

Assim, o padrão significa um ou mais de qualquer espaço, seja parêntese, mais ou dois pontos.

Dividindo em campos usando essa expressão, você verá que:

  • ) terminando a linha significa que o último campo está vazio
  • 1+10:31 e 00:02 são divididos de forma que o segundo e o terceiro últimos campos sejam a hora e o minuto, pois + e : são usados para separar campos.
por muru 02.01.2016 / 02:29