如何将2个命令合并为1个命令?

如何将2个命令合并为1个命令?

命令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'

我需要上一个命令 ( cut -d: -f1-3) 的输出并将其放入 XXX

答案1

管道cmd1 | cmd2将第一个命令的输出发送到第二个命令的标准输入。您似乎想要的是将第一个命令的输出放在第二个命令的命令行上。这样做的方法是命令替换: $(command)

这会将 的输出放在 的cmd1命令行上cmd2

cmd1 "$(cmd2)"

或者,就你的情况而言:

date -d "$(echo ... |cut)" +%s 

答案2

为了便于阅读,我仍然使用多行:

datetime=$( echo "11-FEB-19 06.14.52.352000000 AM" | sed -e 's/\./:/g' -e 's/:[^:]\+$//' )
epoch=$( date -d "$datetime" +%s )
echo "$epoch"

相关内容