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