搜索单词并在多个文件Linux中将大小写转换为小写

时间:2015-06-28 21:07:03

标签: linux shell

我有一堆文件是一个目录,我需要搜索单词,大写字母需要在同一个文件中以小写形式进行转换。

例如:

ef1hccah.prm的字样是" EF1HCCAH" ,前4个字符(EF1H)是常见的,最后4个字符是不同的

现在,我需要修改单词" EF1HCCAH" as" ef1hccah"在文件中

这里是文件列表

[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>需要转换为ef1hccah EF1HSEUS>>需要转换为ef1hseus

请帮助我,

非常感谢

1 个答案:

答案 0 :(得分:2)

使用awk,您可以这样做:

awk '/EF1H/{print $1 " " tolower($NF)}' filename

此选项仅适用于与您显示的输出类似的输入。

使用sed

sed -e 's/\b\(EF1H....\)\b/\L\1/g' filename

perl

perl -ne 's/\b(EF1H....)\b/lc($1)/e && print ' filename

这会将EF1H....更改为小写。