Почему эти команды производят разные результаты?

Я пытаюсь получить временную метку linux из строки текста. Я могу использовать команду cut , чтобы получить строку

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

Теперь, если я использую эту строку даты непосредственно в вызове даты, я могу получить временную метку linux

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

Однако, если я передаю результаты команда вырезать в команду date Я получаю разные результаты

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

Почему результаты разные?

0
04.07.2016, 21:00
1 ответ

date --date - не принимает стандартный ввод; попробуйте date + "% s" --date "$ (echo '" tester_row _____ ", 0," 2016-07-04T01: 42: 28Z "," 2016-07-04T02: 00: 58Z "' | вырезать -c 22-41) " вместо этого. Это запустит ваш конвейер обработки строк в подоболочке и будет использовать его вывод в качестве параметра для date .

1
28.01.2020, 02:48

Теги

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