Awk
在一個文件中查找完整文本並替換另一個文件中的字元串
我在 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
請注意,每次其他程序完成時, **Source_file.txt的值都會動態變化。**因此,目標文件每次都必須正確更新
$$API_JOB_ID
我需要 Unix 命令來解決這個問題。
好的,這有點臟,但它應該可以工作:
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
我們需要了解這一點。