Bash
為什麼這些命令會產生不同的輸出?
我正在嘗試從一行文本中獲取 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
為什麼結果不一樣?
date --date -
不接受標準輸入;試試吧date +"%s" --date "$(echo '"tester_row_____",0,"2016-07-04T01:42:28Z","2016-07-04T02:00:58Z"' | cut -c 22-41)"
。這將在子 shell 中執行您的字元串操作管道,並將其輸出用作date
.