中易网

下面的shell脚本,怎么修改才能匹配到倒数第二个字母为a的

答案:1  悬赏:30  
解决时间 2021-01-11 23:16
  • 提问者网友:星軌
  • 2021-01-11 18:44
下面的shell脚本,怎么修改才能匹配到倒数第二个字母为a的
最佳答案
  • 二级知识专家网友:一叶十三刺
  • 2021-01-11 19:28
#!/bin/sh
newcdr="/data/bass/jingfen/newcdr"
oldcdr="/data/bass/jingfen/oldcdr"
errorcdr="/data/bass/jingfen/errorcdr"
path="/data/bass/crbtbill"
cd $path
#find . -name "*.txt"
#for filename in `ls crbt00*`
#sed -n '2p' crbt001201311010349
for filename in `find . -name "CRBT0*"`
do
    firstline=`head -1 $filename`
    lastline=`tail -n 1 $filename`
    columnnum=`sed -n '1p' $filename | awk -F ',' '{print NF}'`
    if [ "${firstline:0:4}" ==  "CRBT" -o "${lastline:0:3}" == "END" ]; then
        #获取文件名倒数第2个字符
        fchar=`echo $filename|grep -o '..$'|awk '{print substr($1,1,1)}'`
        #判断倒数第2个字符是否为a
        if [ "$fchar" == "a" ]; then
            mv -f $filename $newcdr
        else
            #移动到其他目录
        fi
    elif [ $columnnum -ne 16 ]; then
        mv -f $filename $errorcdr
    else
        mv -f $filename $oldcdr
    fi
done
希望可以帮助到你!


追问问一下 哪个CRBT开头或者 END结束的文件移到哪里了追答上面移动的文件就是以CRBT或END结束的,你的需求不是很明确,有要求就详细点,马上下班了。追问只需要新增对文件名倒数第二个字母为a的文件移到newcrd目录下,其他的不变
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息