Source_file.txt에 이와 같은 데이터가 있습니다.
5daee1ef55297ba2fac78933
그리고 Target_file.txt에는
$$API_JOB_ID=5daed2a255297ba2fac78930
$$API_JOB_RES=succeeded
$$API_SERVER=awsabc1108
Source_file.txt
이제 의 값을 바꿔야 합니다 Target_file.txt
.
출력은 다음과 같아야합니다
$$API_JOB_ID=5daee1ef55297ba2fac78933
$$API_JOB_RES=succeeded
$$API_SERVER=awsabc1108
참고하세요소스파일.txt다른 프로세스가 완료될 때마다 값이 동적으로 변경됩니다. 따라서 대상 파일은 매번 올바른 내용으로 업데이트되어야 합니다.$$API_JOB_ID
이 문제를 해결하려면 Unix 명령이 필요합니다.
답변1
글쎄, 이것은더러운, 하지만 작동해야 합니다.
sed 's/\$\$API_JOB_ID=.*$/\$\$API_JOB_ID='"$(cat Source_file.txt)"'/' Target_file.txt
수정된 버전을 터미널에 인쇄하는 대신 대상 파일을 직접 편집하려면 다음 명령을 사용하십시오.
sed -i 's/\$\$API_JOB_ID=.*$/\$\$API_JOB_ID='"$(cat Source_file.txt)"'/' Target_file.txt
그것은더러운, 주로 내가 하고 있는 일 때문에너무 많은파일 형식과 명령의 성공에 대한 가정은 이러한 가정에 크게 좌우됩니다.옳은, 어떤 가정을 할 수 있는지 정확히 알아야 하는데 설명이 약간 모호합니다. 파일에 다른 형식이나 더 복잡한 구조가 있기 때문에 이 작업이 실패할 수 있다고 생각한다면 Source_file.txt
이에 Target_file.txt
대해 알아야 합니다.