标签:脚本 shell 几个 sjyzx echo cut file wlw dir
1.从某个主机下载文件到本地主机目录
用到的知识点:
-
day1=
date +%e
%e与%d的区别,%d是指天,比如9号就是09 而%e是整数,9号就是9 -
ftp下载文件的命令 批量下载文件用mget,不能用get。EOF包含的里边不能用for循环,只能指定是哪个变量
-
最后判断文件是否get到,用if条件 -e表示文件是否存在
#!/bin/bash # subject: get file from ftp # date:2020/9/7 # author :houchunping ip=****** user=****** pass=****** dir=****** dir_ext=******day=`date +%Y%m` day1=`date +%e` #echo $day1 pre_month=`expr $day - 1` #echo "$dir_ext/$pre_month" file=I20041?_${day1}_${day}.csv ftp -ivn $ip <<EOF user $user $pass bin cd $dir_ext/$pre_month lcd $dir mget $file bye EOF #执行完成判断文件是否在当前目录存在,如果存在则表示get成功 cd $lcd file1=I200411_${day1}_${day}.csv if [ -e $file1 ];then echo "it is successful!" else echo "it is fialed" fi
2.批量重命名文件
用到的知识点
-
case循环语句
-
for循环语句
-
cut命令 cut -d 是根据分隔符进行字符串截取,与-f配合使用,默认分隔符是tab cut -c 是根据字符截取
#!/bin/bash dir=***** for file in `ls $dir/I2004*` do echo $file flag=`echo $file |cut -d \/ -f 6|cut -c 6-7` case $flag in 10) mv $file "$dir/wlw_sjyzx_2005" ;; 11) mv $file "$dir/wlw_sjyzx_2004" ;; 12) mv $file "$dir/wlw_sjyzx_2003" ;; 13) mv $file "$dir/wlw_sjyzx_2002" ;; 14) mv $file "$dir/wlw_sjyzx_2001" ;; esac done
3.批量压缩文件
用到的知识点:
-
awk命令 awk 'END{print NR}' $file 查询文件的行数 awk '{printf("%010d\n",$0)}' 指定长度字符串不够前边补0操作
-
gzip -c 文件1 > 文件2.gz 压缩命令将文件1压缩成文件2的名称格式
-
多进程处理。括号和& 是将括号里的任务作为一个组合后台运行。wait是等待所有进程执行。
#!/bin/bash day=`date +%Y%m%d` dir=***** for file in `ls $dir/wlw_sjyzx*` do ( flag=`echo $file|cut -d \/ -f 6|cut -d \_ -f 3` wcl=`awk 'END{print NR}' $file` echo --------------------------- echo $wcl wcll=`echo $wcl|awk '{printf("%010d\n",$0)}'` echo $wcll gzip -c "$file" > "$dir/BOSS_${day}010000_${flag}100.${wcll}.gz" ) & done wait
标签:脚本,shell,几个,sjyzx,echo,cut,file,wlw,dir 来源: https://www.cnblogs.com/houjiashan/p/13647894.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。