【发布时间】:2016-04-15 09:29:41
【问题描述】:
您好,我已经问过这个问题,但由于信息充足,它被称为无效。让我再次提出我的问题。
我在 Ravi 目录中有很多以 ECEPYO 开头的文件。
如果文件中存在字符串“BOFA2016ECG”,我应该重命名文件并将其移动到新目录 teja。
如果文件中没有字符串,我需要将其移动到测试文件夹。
我正在使用以下代码
INBOUND=/mnt/data/Ravi/ECEPYO.*
for i in `ls $INBOUND` ;
do
awk '/BOFA2016ECG/{file="/mnt/data/teja/BOFA" ++c ".dat"} {print > file}' $INBOUND
done
rm $INBOUND
当字符串可用时,这可以正常工作;但是当字符串不可用时,我收到以下错误
awk: cmd. line:1: (FILENAME=/mnt/data/Ravi/ECEPYO.266031 FNR=1) fatal: expression for `>' redirection has null string value
当字符串不可用并将文件移动到不同的文件夹时,我需要一些帮助来开发代码。
下面的代码可以解决问题;
INBOUND=/mnt/GXSdata/Ravi/ECEPYO.*
for i in `ls $INBOUND` ;
do
SEARCHSTRING=`grep BOFA2016ECG $INBOUND | cut -c217-227 `
if [ "$SEARCHSTRING" = "BOFA2016ECG" ];
then
awk '/BOFA2016ECG/{file="/mnt/data/teja/BOFA" ++c ".dat"} {print > file}' $INBOUND
else
cp $INBOUND /mnt/data/test
fi;
done
rm $INBOUND
但它仅适用于单个文件;当文件夹中有多个文件时,重命名文件不起作用应该使用什么来修改多个文件
【问题讨论】: