テキスト行から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
ただし、コマンドの結果をコマンドにパイプすると、他の結果が表示されます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
。