【发布时间】:2017-05-23 11:52:41
【问题描述】:
Here is my test file.
ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-APP-SDP-DAILY,D:\websites ;D:\consoleapps ;D:\Errorlogs ;D:\Apache-Tomcat-7.0.19 ;C:\Inetpub\history ;C:\windows\system32\msmq ;C:\Inetpub\logs\logfiles ; ,05/17/2017,144.793,05/23/2017,0.116425
ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-APP-SDP-MONTHLY,D:\consoleapps ;D:\websites ;C:\Inetpub\history ;C:\windows\system32\msmq ;C:\Inetpub\logs\logfiles ;D:\Errorlogs ;D:\Apache-Tomcat-7.0.19 ;C:\Inetpub\history ;C:\windows\system32\msmq ;C:\Inetpub\logs\logfiles ; ,05/21/2017,145.171,No_Backup,0
ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-WIN-OS-MONTHLY,C:\ ;System State:\ ; ,05/16/2017,31.6048,No_Backup,0
ckencogtapzp01.corp.kencell.co.ke,KE15-GENERAL-ALL-WIN-OS-MONTHLY,C:\ ;System State:\ ;Shadow Copy Components:\ ; ,05/20/2017,33.1401,No_Backup,0
我正在做的只是尝试下面的代码
echo "Client,Policy,Selection,Full_Backup_Date,Full_Size(GB),Incr_Backup_Date,Incr_Size(GB)" > /tmp/testfinal.csv
while read -r valid
do
active=`sudo /usr/openv/netbackup/bin/admincmd/bppllist $(echo $valid | awk -F "," '{print $2}') -l | grep "INFO" |awk '{print $12}'`
if [ "$active" -eq 0 ]
then
echo $valid >> /tmp/test_final.csv
else
full=`echo $valid | awk -F "," '{print $4}'`
incr=`echo $valid | awk -F "," '{print $6}'`
if [ "$full" != "No_Backup" ] && [ "$incr" != "No_Backup" ]
then
echo $valid >> /tmp/testfinal.csv
fi
fi
done</tmp/test.csv
由于某种原因,它删除了第二个“\”并添加了下一行
这是输出。
ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-APP-SDP-DAILY,D:\websites ;D:ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-APP-SDP-MONTHLY,D:ckencogtapzp01.corp.kencell.co.ke,KE13-CKENCOGTAPZP01-WIN-OS-MONTHLY,C:\ ;System State:\ ; ,05/16/2017,31.6048,No_Backup,0
ckencogtapzp01.corp.kencell.co.ke,KE15-GENERAL-ALL-WIN-OS-MONTHLY,C:\ ;System State:\ ;Shadow Copy Components:\ ; ,05/20/2017,33.1401,No_Backup,0
任何想法为什么,我试过 IFS=' ' 因为它会忽略 test.csv 中的空格,但结果是一样的。我对为什么它在看到“\c”时删除并添加下一行然后在遇到“\c”时再次删除感到头疼。
有什么建议吗?
【问题讨论】:
-
不是因为while、aix或IFS,而是遇到\c,在echo中是“抑制进一步输出”,我用printf替换它解决了这个问题。
标签: while-loop aix ifs