텍스트 줄에서 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
이제 date를 호출할 때 해당 날짜 문자열을 직접 사용하면 Linux 타임스탬프를 얻을 수 있습니다.
> date +"%s" --date 2016-07-04T01:42:28Z
1467596548
그러나 명령 결과를 command 에 파이프하면 다른 결과가 나타납니다 cut
.date
> echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41 | date +"%s" --date -
1467590400
결과가 다른 이유는 무엇입니까?
답변1
date --date -
표준 입력을 허용하지 않습니다. date +"%s" --date "$(echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41)"
이것을 시도해 보십시오. 이것은 서브쉘에서 문자열 조작 파이프를 실행하고 그 출력을 date
.