我首先编写了脚本-从foofile文件中删除一行。然后在tron _ *。csv文件中添加一个日期,然后对该文件进行gzip压缩,然后对该文件进行scp。
为了将日期添加到文件中,我从文件中删除了后缀-我从文件名中删除了csv,然后将日期附加到了新文件名中,然后将“ .dot csv”重新附加到了文件名中然后将$ i文件cp为新名称,然后进行gzip和scp。
#!/bin/bash
set -x
sed -i '/D,642,0642,ZIPPY,FOO,,M,,S,S,FARFEGNUGEN,213,213,/d' ./tron_foot.csv
today=$(/bin/date +%Y%m%d)
#today=20141024
echo $today
for i in tron_foott.csv tron_stk.csv
do
cut_suffix=$(printf ${i%%.*})
cp -p $i $cut_suffix.$today.csv
gzip -f $cut_suffix.$today.csv
sleep 2
scp -r -p $cut_suffix.$today.csv.gz [email protected]:/data/DROPBOX/
sleep 2
done
问题是我切断后缀后,脚本不再能看到文件。
我认为这样不会起作用-cp语句看不到文件的原始名称。我认为删掉文件的后缀只是表面上的。我没想到它改变了$ i的值-我以为那只是改变了名字,而不是文件的内容。
caper_user@casper_server:~$ /data/gprocess_cboe_tron_files
+ sed -i /D,642,0642,BEAR,TWIT,,M,,S,S,FARFEGNUGEN,213,213,/d /data/gtron_mmstk.csv
++ /bin/date +%Y%m%d
+ today=20141028
+ echo 20141028
20141028
+ for i in tron_mmet.csv tron_mmstk.csv
++ printf tron_mmet
+ cut_suffix=tron_mmet
+ cp -p tron_mmet.csv tron_mmet.20141028.csv
cp: cannot stat `tron_mmet.csv': No such file or directory
+ gzip -f tron_mmet.20141028.csv
gzip: tron_mmet.20141028.csv: No such file or directory
+ sleep 2
+ scp -r -p tron_mmet.20141028.csv.gz [email protected]:/data/DROPBOX/
tron_mmet.20141028.csv.gz: No such file or directory
+ sleep 2
+ for i in tron_mmet.csv tron_mmstk.csv
++ printf tron_mmstk
+ cut_suffix=tron_mmstk
+ cp -p tron_mmstk.csv tron_mmstk.20141028.csv
cp: cannot stat `tron_mmstk.csv': No such file or directory
+ gzip -f tron_mmstk.20141028.csv
gzip: tron_mmstk.20141028.csv: No such file or directory
+ sleep 2
+ scp -r -p tron_mmstk.20141028.csv.gz [email protected]:/data/DROPBOX/
tron_mmstk.20141028.csv.gz: No such file or directory
+ sleep 2
caper_user@casper_server:~$ cd /data/g
〜
您的路已关闭。您在某些地方使用完整路径,而在其他地方则使用(隐式)相对路径。
tron_mmet.csv
不~caper_user
存在,/data
但存在于其中,但脚本是~caper_user
使用裸文件名运行的,并且使用的是裸文件名。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句