我有一堆文件是一个目录,我需要搜索单词,大写字母需要在同一个文件中以小写形式进行转换。
例如:
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
请帮助我,
非常感谢
答案 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....
更改为小写。