search for a string ,replace the whole line with new line

hai
i am very new to unix.

i am having two files like this.

first.properties

cache.ZA.TL_CCY=SELECT trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,CCY_CODE,COUNTRY_CODE,CITY_CODE,COUNTRY_CODE_TT,AVAILABLE_TT,AVAILABLE_BT,AVAILABLE_RTGS,AVAILABLE_ACH,AVAILABLE_PAY,AVAILABLE_LBC,AVAILABLE_IBC,AVAILABLE_OC,AVAILABLE_CC,DEC_PLACE,NEED_ROUNDING,ACTION_FLAG FROM TL_CCY
cache.ZA.TL_CLR_ZONE=SELECT trim(CLR_ZONE_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, CLR_ZONE_CODE,COUNTRY_CODE,CITY_CODE,CORR_BANK_CODE,IS_DUMMY,CCY_CODE FROM TL_CLR_ZONE
cache.ZA.TL_CUST=SELECT trim(CUST_ID)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,CUST_ID,COUNTRY_CODE,CITY_CODE,DELETED,FX_TOLERANCE_LIMIT FROM TL_CUST
cache.ZA.TL_CUST_DR_AC=SELECT trim(CUST_ID)||trim(COUNTRY_CODE)||trim(CITY_CODE)||trim(AC_NO) AS PK_COLUMN, CUST_ID,COUNTRY_CODE,CITY_CODE,AC_NO,CCY_CODE,DELETED,ASSIGN_CORP_CHQ_NO,PBOC_BANK_CODE,ALLOW_DUP_CORP_CHQ_NO FROM TL_CUST_DR_AC
cache.ZA.TL_DRAWEE_BANK=SELECT trim(CCY_CODE)||trim(BANK_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,  CCY_CODE,BANK_CODE,COUNTRY_CODE,CITY_CODE FROM TL_DRAWEE_BANK
cache.ZA.TL_DRAWEE_BANK_CHANNEL=SELECT trim(CCY_CODE)||trim(BANK_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, CCY_CODE,BANK_CODE,COUNTRY_CODE,CITY_CODE,DEFAULT_BANK FROM TL_DRAWEE_BANK_CHANNEL
cache.ZA.TL_FLAT_CHARGE=SELECT trim(PYMT_TYPE)||trim(PROC_MODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,PYMT_TYPE,PROC_MODE,COUNTRY_CODE,CITY_CODE,TIER_CHARGE,SERVICE_FEE FROM TL_FLAT_CHARGE
cache.ZA.TL_PICKUP_LOC=SELECT trim(PICKUP_LOC_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, PICKUP_LOC_CODE,COUNTRY_CODE,CITY_CODE FROM TL_PICKUP_LOC
cache.ZA.TL_PYMT_CENTRE= SELECT trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, COUNTRY_CODE,CITY_CODE,SELECT_WHT,SELECT_VAT,SELECT_DISCOUNT,SELECT_SERVICE,SELECT_BRANCH,SELECT_CLZ,CHK_INV_CHAR FROM TL_PYMT_CENTRE
cache.ZA.TL_SERVICE= SELECT trim(SERVICE_TYPE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, SERVICE_TYPE,COUNTRY_CODE,CITY_CODE,PAYROLL_SERVICE FROM TL_SERVICE
cache.ZA.TL_SYS_PARM=SELECT trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, COUNTRY_CODE,CITY_CODE,PROC_BANK_CODE,BASE_CCY,LOCAL_CCY,SYS_CODE,TIME_ZONE_DIFF,FX_CNTL,FX_CNTL_LIMIT,FX_RATE_LIMIT,FAX_NO,MIDAS_BATCH_NO,TRAN_CODE,LOCAL_PYMT_CITY_CODE,DR_RES_MODE,CR_RES_MODE,FISC_NOSTRO_AC_NO,FISC_LIMIT,STRAIGHT_THROUGH_LIMIT,DR_MODE,CR_MODE,PRT_AFTER_DR,MAP_PYMT_TYPE,CHK_LOCAL_CCY_AMT,LLG_RTGS_LIMIT,LLG_CLR_ZONE_CODE FROM TL_SYS_PARM
cache.ZA.TL_CCY_CUTOFF_TIME=SELECT trim(PYMT_TYPE)||trim(PROC_MODE)||trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, PYMT_TYPE,PROC_MODE,CCY_CODE,COUNTRY_CODE,CITY_CODE,MON_CUTOFF_TIME,TUE_CUTOFF_TIME,WED_CUTOFF_TIME,THU_CUTOFF_TIME,FRI_CUTOFF_TIME,SAT_CUTOFF_TIME,SUN_CUTOFF_TIME FROM TL_CCY_CUTOFF_TIME

Change.txt

cache.ZA.TL_CLR_ZONE=SELECT trim(CCY_CODE) AS PK_COLUMN,CCY_CODE,NEED_ROUNDING FROM TL_CCY
 
cache.ZA.TL_SYS_PARM=SELECT trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,FISC_NOSTRO_AC_NO,FISC_LIMIT,STRAIGHT_THROUGH_LIMIT,DR_MODE,CR_MODE,PRT_AFTER_DR,MAP_PYMT_TYPE,CHK_LOCAL_CCY_AMT,LLG_RTGS_LIMIT,LLG_CLR_ZONE_CODE FROM TL_SYS_PARM

i want the output to be
First.properties

cache.ZA.TL_CCY=SELECT trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,CCY_CODE,COUNTRY_CODE,CITY_CODE,COUNTRY_CODE_TT,AVAILABLE_TT,AVAILABLE_BT,AVAILABLE_RTGS,AVAILABLE_ACH,AVAILABLE_PAY,AVAILABLE_LBC,AVAILABLE_IBC,AVAILABLE_OC,AVAILABLE_CC,DEC_PLACE,NEED_ROUNDING,ACTION_FLAG FROM TL_CCY

cache.ZA.TL_CLR_ZONE=SELECT trim(CCY_CODE) AS PK_COLUMN,CCY_CODE,NEED_ROUNDING FROM TL_CCY
 
cache.ZA.TL_CUST=SELECT trim(CUST_ID)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,CUST_ID,COUNTRY_CODE,CITY_CODE,DELETED,FX_TOLERANCE_LIMIT FROM TL_CUST
cache.ZA.TL_CUST_DR_AC=SELECT trim(CUST_ID)||trim(COUNTRY_CODE)||trim(CITY_CODE)||trim(AC_NO) AS PK_COLUMN, CUST_ID,COUNTRY_CODE,CITY_CODE,AC_NO,CCY_CODE,DELETED,ASSIGN_CORP_CHQ_NO,PBOC_BANK_CODE,ALLOW_DUP_CORP_CHQ_NO FROM TL_CUST_DR_AC
cache.ZA.TL_DRAWEE_BANK=SELECT trim(CCY_CODE)||trim(BANK_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,  CCY_CODE,BANK_CODE,COUNTRY_CODE,CITY_CODE FROM TL_DRAWEE_BANK
cache.ZA.TL_DRAWEE_BANK_CHANNEL=SELECT trim(CCY_CODE)||trim(BANK_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, CCY_CODE,BANK_CODE,COUNTRY_CODE,CITY_CODE,DEFAULT_BANK FROM TL_DRAWEE_BANK_CHANNEL
cache.ZA.TL_FLAT_CHARGE=SELECT trim(PYMT_TYPE)||trim(PROC_MODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,PYMT_TYPE,PROC_MODE,COUNTRY_CODE,CITY_CODE,TIER_CHARGE,SERVICE_FEE FROM TL_FLAT_CHARGE
cache.ZA.TL_PICKUP_LOC=SELECT trim(PICKUP_LOC_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, PICKUP_LOC_CODE,COUNTRY_CODE,CITY_CODE FROM TL_PICKUP_LOC
cache.ZA.TL_PYMT_CENTRE= SELECT trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, COUNTRY_CODE,CITY_CODE,SELECT_WHT,SELECT_VAT,SELECT_DISCOUNT,SELECT_SERVICE,SELECT_BRANCH,SELECT_CLZ,CHK_INV_CHAR FROM TL_PYMT_CENTRE
cache.ZA.TL_SERVICE= SELECT trim(SERVICE_TYPE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, SERVICE_TYPE,COUNTRY_CODE,CITY_CODE,PAYROLL_SERVICE FROM TL_SERVICE

cache.ZA.TL_SYS_PARM=SELECT trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN,FISC_NOSTRO_AC_NO,FISC_LIMIT,STRAIGHT_THROUGH_LIMIT,DR_MODE,CR_MODE,PRT_AFTER_DR,MAP_PYMT_TYPE,CHK_LOCAL_CCY_AMT,LLG_RTGS_LIMIT,LLG_CLR_ZONE_CODE FROM TL_SYS_PARM
cache.ZA.TL_CCY_CUTOFF_TIME=SELECT trim(PYMT_TYPE)||trim(PROC_MODE)||trim(CCY_CODE)||trim(COUNTRY_CODE)||trim(CITY_CODE) AS PK_COLUMN, PYMT_TYPE,PROC_MODE,CCY_CODE,COUNTRY_CODE,CITY_CODE,MON_CUTOFF_TIME,TUE_CUTOFF_TIME,WED_CUTOFF_TIME,THU_CUTOFF_TIME,FRI_CUTOFF_TIME,SAT_CUTOFF_TIME,SUN_CUTOFF_TIME FROM TL_CCY_CUTOFF_TIME

we have to search for the keys which found inside our change.txt in first.properties and replace the value of the key in first.properties with the corresponding value inside our change.txt

please help mein this scenario. it is an very urgent requirement.please help me .

thanks a lot in advance
Raja

Try this:

awk 'NR==FNR{a[$1]=$0;next}a[$1]{print a[$1];next}{print}' "Change.txt" "first.properties"

Regards

Hai Franklin,

Thanks a lot. i want to reflect the changes in some other file. please help me.

The code you gave diplays the changes what i need ,but want the first.properties should get updated every time when try this code.plz help me .

Hi Franklin,
Thanks a lot, this code gives me the changes made in first.properties in display,but the file remains the same. i want to reflect the changes every time we do this command in first.properties permanently.plz help me

thanks in advance

Redirect the output to a temporary file and replace the original file with it:

awk 'NR==FNR{a[$1]=$0;next}a[$1]{print a[$1];next}{print}' "Change.txt" "first.properties" > prop.tmp

mv prop.tmp first.properties

Regards