【发布时间】:2015-08-18 22:23:54
【问题描述】:
我有一个“虚拟”文件,其中: 如果文件的 15 个字符与“R”匹配,文件的 28 个字符与“D”匹配 那么 53-56 个字符应该替换为 0。
我尝试过使用下面的脚本,但它不起作用。
for i in `cat dummy`
do
if [[ `echo $i | cut -c15` = "R" ]] && [[ `echo $i | cut -c28` = "D" ]]
then
sed -e 's/./0/53' -e 's/./0/54' -e 's/./0/55' -e 's/./0/56'
fi
done
输入文件:虚拟
05196220141228R201412241308D201412200055SA1155WE130800031300SL07Y051
05196220141228R201412241308A201412220350SA0731SU1950LAX C00020202020
05196220141228R201412241308D201412200055SA1155WE130823455300SL07Y051
05196220141228N201412241308A201412240007TU0548WE1107MEL C00000000015
07054820141228N201412220850D201412180300TH1400MO085000040300UL180001
输出应该是:
05196220141228R201412241308D201412200055SA1155WE130800001300SL07Y051
05196220141228R201412241308A201412220350SA0731SU1950LAX C00020202020
05196220141228R201412241308D201412200055SA1155WE130800005300SL07Y051
05196220141228N201412241308A201412240007TU0548WE1107MEL C00000000015
07054820141228N201412220850D201412180300TH1400MO085000040300UL180001
【问题讨论】:
标签: unix replace sed match conditional-statements