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"

관련 정보