명령 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"