Reputation: 11
i have bunch of files a directory, and i need to search word, which is in upper case and need to convert in lower case in same file.
for example :
ef1hccah.prm has as word "EF1HCCAH" , out of the word 1st 4 characters(EF1H) are common, last four characters is be different
now , i need to modify the word "EF1HCCAH" as "ef1hccah" in files
here are list of files
[oracle@linux1]$ grep -r EF1H[A-Z] ef1h*
ef1hccah.prm:EXTRACT EF1HCCAH
ef1hccnh.prm:EXTRACT EF1HCCNH
ef1hccsr.prm:EXTRACT EF1HCCSR
ef1hcsch.prm:EXTRACT EF1HCSCH
ef1hcscs.prm:EXTRACT EF1HCSCS
ef1hfadt.prm:EXTRACT EF1HFADT
ef1hfdap.prm:EXTRACT EF1HFDAP
ef1hfras.prm:EXTRACT EF1HFRAS
ef1hfrci.prm:EXTRACT EF1HFRCI
ef1hfrft.prm:EXTRACT EF1HFRFT
ef1hfrpi.prm:EXTRACT EF1HFRPI
ef1hfrpi.prm:EXTRACT EF1HFRPI
ef1hfrsc.prm:EXTRACT EF1HFRSC
ef1hfrve.prm:EXTRACT EF1HFRVE
ef1hidap.prm:EXTRACT EF1HIDAP
ef1hidnm.prm:EXTRACT EF1HIDNM
ef1himad.prm:EXTRACT EF1HIMAD
ef1himdd.prm:EXTRACT EF1HIMDD
ef1hisco.prm:EXTRACT EF1HISCO
ef1horcl.prm:EXTRACT EF1HORCL
ef1hsela.prm:EXTRACT EF1HSELA
ef1hsete.prm:EXTRACT EF1HSETE
ef1hseus.prm:EXTRACT EF1HSEUS
EF1HCCAH >> need to convert as ef1hccah EF1HSEUS >> need to convert as ef1hseus
please help me,
Thank you so much
Upvotes: 1
Views: 133
Reputation: 3223
Using awk
, you can do it as:
awk '/EF1H/{print $1 " " tolower($NF)}' filename
This one is specific only for input similar to the output that you showed.
Using sed
:
sed -e 's/\b\(EF1H....\)\b/\L\1/g' filename
Or with perl
:
perl -ne 's/\b(EF1H....)\b/lc($1)/e && print ' filename
This will change the EF1H....
to lower case.
Upvotes: 2