命令1:echo "11-FEB-19 06.14.52.352000000 AM" | cut -d' ' -f1,2 | sed 's/\./:/g' |cut -d: -f1-3
命令2:date -d "OUTPUT COMMAND1" +'%s'
预期:- echo "11-FEB-19 06.14.52.352000000 AM" | cut -d' ' -f1,2 | sed 's/\./:/g' |cut -d: -f1-3 | date -d "XXX" +'%s'
我需要prev命令(cut -d: -f1-3)的输出,并把它放在XXX中。
发布于 2019-02-11 22:45:28
管道cmd1 | cmd2将第一个命令的输出发送到第二个命令的标准输入。您似乎想要的是将第一个命令的输出放在第二个命令行上。这样做的方法是命令替换:$(command)。
这将把cmd1的输出放在cmd2的命令行上:
cmd1 "$(cmd2)"或者,在你的情况下:
date -d "$(echo ... |cut)" +%s 发布于 2019-02-11 23:31:38
为了提高可读性,我仍然会使用多行:
datetime=$( echo "11-FEB-19 06.14.52.352000000 AM" | sed -e 's/\./:/g' -e 's/:[^:]\+$//' )
epoch=$( date -d "$datetime" +%s )
echo "$epoch"https://unix.stackexchange.com/questions/500045
复制相似问题