Por que esses comandos produzem saídas diferentes?

0

Estou tentando obter o registro de data e hora do linux de uma linha de texto. Eu posso usar o comando cut para pegar a string

> echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41
2016-07-04T01:42:28Z

Agora, se eu usar essa string de data diretamente em uma chamada para a data, posso obter o timestamp do linux

> date +"%s" --date 2016-07-04T01:42:28Z
1467596548

No entanto, se canalizar os resultados do comando cut para o comando date , obtenho resultados diferentes

> echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41 | date +"%s" --date -
1467590400

Por que os resultados são diferentes?

    
por Jason 04.07.2016 / 20:00

1 resposta

1

date --date - não aceita entrada padrão; tente date +"%s" --date "$(echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41)" em vez disso. Isso executará o pipeline de manipulação de string em um subshell e usará a saída disso como um parâmetro para date .

    
por 04.07.2016 / 20:50