awk 값을 가져오고 파일로 출력 [중복]

awk 값을 가져오고 파일로 출력 [중복]

현재 awk를 사용하고 있는 로그 파일에서 값을 가져와야 합니다. 숫자를 콘솔에 인쇄할 수 있지만 값을 새 파일에 넣으려고 하면 아무 일도 일어나지 않습니다. 이게 내가 가진 거야

 sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR  tail -F $INPUT_FILE |  awk '{ print $16 }' > $OUTPUT_FILE

//when command is run without > $OUTPUT_FILE i get my value eg 4000

파일에 아무 것도 출력되지 않으므로 이는 버퍼링 문제가 아닙니다. 파일이 생성되었지만 새 파일에 값이 기록되지 않았습니다. 게다가 내가 읽은 줄을 계속 대체하는 다른 스크립트의 줄을 읽고 있기 때문에 내 값은 항상 덮어쓰여집니다.

그래서 제가 가지고 있던 문제를 해결했습니다. 해결책은 명령을 변수에 할당하고 해당 변수를 파일에 쓰는 것입니다. 이전에 이것을 시도한 적이 있지만 문제는 = 기호와 명령 사이에 여분의 공백이 있다는 것입니다. 이것은 작동 코드입니다

 value=`sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`

        echo $value

        echo $value > $OUTPUT_FILE

//will not work because of the space between "value= `sshpass"
 //  value= `sshpass -p $PASSWORD ssh $USERNAME@$REMOTE_IP_ADDR tail -n 1 $INPUT_FILE | awk '{ print $16 }'`

관련 정보