change character(s) in specific column

Hi all!

I need to change the final e every time when it is present in any word in column 1 to a; moreover, to change the final i again to a in any word in column 1, but just if word in column 2 begins with ha or si.

Here below you can see a sample of my data:

achwa ungeliachwa ungeli 1
achwa ushaachwa usha 1
achwa vinaachwa vina 3
achwa vingeachwa vinge 1
achwa waachwa wa 1
achwa waliouachwa waliou 1
achwa yameachwa yame 1
achwa zilikwishaachwa zilikwisha 1
achwe akaachwe aka 1
achwe isachwe is 1
achwe niachwe ni 2
achwe visiachwe visi 2
achwe wasachwe was 1
achwi haachwi ha 2
achwi hachwi h 1
achwi haiachwi hai 2
achwi haviachwi havi 1
achwi hayaachwi haya 1
achwi haziachwi hazi 2
achwi siachwi si 2
dhani aliyoidhani aliyoi 2
dhani amdhani am 1

And here it is the result I need

achwa ungeliachwa ungeli 1
achwa ushaachwa usha 1
achwa vinaachwa vina 3
achwa vingeachwa vinge 1
achwa waachwa wa 1
achwa waliouachwa waliou 1
achwa yameachwa yame 1
achwa zilikwishaachwa zilikwisha 1
achwa akaachwe aka 1
achwa isachwe is 1
achwa niachwe ni 2
achwa visiachwe visi 2
achwa wasachwe was 1
achwa haachwi ha 2
achwa hachwi h 1
achwa haiachwi hai 2
achwa haviachwi havi 1
achwa hayaachwi haya 1
achwa haziachwi hazi 2
achwa siachwi si 2
dhani aliyoidhani aliyoi 2
dhani amdhani am 1

Thanks a lot!
mjomba

Hi, Could this help you ?

awk '{$1=substr($1,length($1))=="e" || (substr($1,length($1))=="i" && ($2 ~ /^ha/ || $2 ~ /^si/))?substr($1,1,length($1)-1)"a":$1}1' inputfile
awk '{if(substr($1,length($1),1)=="e") {$1=substr($1,1,length($1)-1)"a"}else{if(substr($1,length($1),1)=="i"&&(substr($2,1,2)=="ha"||substr($2,1,2)=="si")) {$1=substr($1,1,length($1)-1)"a"}}}1' file

or

sed -e 's/e /a /' -e 's/i ha/a ha/' -e 's/i si/a si/' file
awk '$2 ~ /^ha|^si/ && $1 ~ /e$|i$/{$1=substr($1,1,length($1)-1)"a"}1' infile