한 파일에서 전체 텍스트를 찾고 다른 파일에서 문자열 바꾸기

한 파일에서 전체 텍스트를 찾고 다른 파일에서 문자열 바꾸기

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대해 알아야 합니다.

관련 정보