コマンド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
最初のコマンドの出力を2番目のコマンドの標準入力に送信します。あなたが望むのは、最初のコマンドの出力を2番目のコマンドのコマンドラインに入れることです。これを行う方法は次のとおりです。コマンドの置き換え:$(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"