bash检查文件格式
情形描述:最近在做一个ETL的项目,用的是CLoverETL,需要在拿到文件后对文件格式进行检验,以决定是否继续。
主要功能是检查每个文件中有几个“|”符号,项目中约定以该符号来作为分隔,所以检查每个文件每行的“|”的个数。没有问题才可以插入到数据库中。
说明:
breakline=10表示如果一个文件中超过10行的格式不对,则不再计算
试了下,CloverETL这款工具中支持的通配符非常有限,所以类似Hengda_Payment_*_*_*_*这样看起来很怪的匹配方式
check_delimitor(){
delimitor="|"
breakline=
path="${DATATMP_DIR}/bash_res.txt"
i=
while read line
do
num=$(echo $line|grep -o $delimitor|wc -l)
if [ $num != $ ];then
echo "$2|${i}|${NOW}" >> ${DATATMP_DIR}/bash_res.txt
if [ $i -gt $breakline ]
then
echo "****More than ${i} lines format wrong in $2****" >> $path
break
fi
fi
let i++
done < ${DATATMP_DIR}/$
}
for file in `ls ${DATATMP_DIR}`
do
case $file in
Hengda_Member_*)
check_delimitor $file
;;
Hengda_Ticket_*)
check_delimitor $file
;;
Hengda_Payment_*_*_*_*)
check_delimitor $file
;;
Hengda_Payment_*)
check_delimitor $file
;;
Hengda_Transaction_Non_Tickets_*)
check_delimitor $file
;;
Hengda_Transaction_*)
check_delimitor $file
;;
Hengda_Item_Non_Tickets_*)
check_delimitor $file
;;
Hengda_Cinema_*)
check_delimitor $file
;;
Hengda_Film_*_*)
check_delimitor $file
;;
Hengda_Film_*)
check_delimitor $file
;;
Hengda_Refer_*)
check_delimitor $file
;;
*) echo "FILE NAME WRONG" ;;
esac
done
bash检查文件格式的更多相关文章
- js 检查文件格式和文件大小
之前有个工作需要用到js检查文件大小和文件格式,网上查了下有个兄弟写的不错,拿过来就能直接用,感谢他顺便记录下.原始文章地址http://www.jb51.net/article/43498.htm ...
- check if a linux process is done using bash 检查进程是否在运行
# cat > check_process_is_end.sh while truedo sleep 30 # seconds res=`ps -ef | grep RNAhybrid` ...
- Bash 翻译
Bash参考手册 目录 1简介 1.1什么是Bash? 1.2什么是shell? 2定义 3基本外壳功能 3.1 Shell语法 3.1.1外壳操作 3.1.2报价 3.1.2.1逃逸角色 3.1.2 ...
- linux命令帮助 man bash
BASH(1) BASH(1) NAME bash - GNU Bourne-Again SHell (GNU 命令解释程序 “Bourne二世”) 概述(SYNOPSIS) bash [option ...
- 使用Git Bash for Windows
本篇体验Git Bash在Windows操作系统上的用法. 什么是Bash? 是一个Shell环境,Bourne Again Shell的缩写. 安装git for windows → http:// ...
- (转)linux bash shell 入门教程
Shell Script(bash)简介 众所皆知地,UNIX上以小工具著名,利用许多简单的小工具,来完成原本需要大量软体开发的工作,这一点特色,使得UNIX成为许多人心目中理想的系统平台. 在众多的 ...
- Bash Shell启动配置脚本的顺序
1.Bash检查环境变量文件的方式,取决于系统运行Shell的方式,通常系统运行Shell有3种方式: )通过系统用户登陆后默认运行的Shell )非登陆交互式运行Shell )执行脚本运行非交互式S ...
- shell脚本,检查给出的字符串是否为回文
[root@localhost wyb]# .sh #!/bin/bash #检查给出的字符串是否为回文 read -p "Please input a String:" numb ...
- shell 检查文件夹所属用户组
shell 检查文件夹所属用户组 #!/bin/bash # 检查文件夹 权限是否777 检查文件夹所属组是否www # authro ranmufei # 2017 08 21 云板容器版 /dat ...
随机推荐
- 利用MVVM设计快速开发个人中心、设置等模块
我们在做iOS开发过程中,静态页面的开发比开发动态页面更让我们开发者抓狂.因为动态页面通常是一个页面一种cell样式,作为开发者只需要专注于定制好一种样式之后,就可以使用数据填充出较好的界面.而静态c ...
- Jdk内置性能测试工具的介绍
(一) JConsole JConsole使用JVM的可扩展性Java管理扩展(JMX)工具来提供关于运行于Java平台的应用程序的性能和资源消耗的信息. 在J2SE 5.0软件中,你需要启动使用-D ...
- HDU 5360 (贪心)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5360 题意:告诉你n个区间[ l[i],r[i] ],然后让你排序,必须左区间不大于它前边的总区间个数 ...
- datawindow 创建操作报表。
最近制作做了几个简单的报表,写下主要的代码.以便各位参考. public void FillDW(DataTable dtbResult) { try { DataRow dtFr; ; , j = ...
- Glossary
Glossary term terminology Certificate authority A norganization that authorizes a certificate. Certi ...
- thrift编译安装
关于thrift的介绍:http://www.ibm.com/developerworks/cn/java/j-lo-apachethrift/ Apache Thrift 是 Facebook 实现 ...
- 如何修改Eclipse在Debug时背景色
比较喜欢暗色的Eclipse主题,安装了Eclipse color theme,使用了Oblivion这个黑色背景的主题. 更换了暗色的Eclipse主题后,Debug时看不清文字: 需要更背景颜色, ...
- jsp状态管理
http无状态协议 服务器记不住你 每次浏览器访问,服务器不会特点保存相应信息,故记不住你 jsp状态存储的两种机制 cookie 存储在客户端 用途: 1.简化登陆 2.追踪特定对象 3.保存用户常 ...
- 黑马程序员——JAVA基础之网络编程
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 网络编程 网络模型:OSI参考模型和TCP/IP参考模型 网络通讯三要素: IP地址:InetA ...
- Python-select详解(select、epoll)
select函数操作集合的时候有个要求,要么集合本身是描述符,要么他提供一个fileno()接口,返回一个描述符. I/O多路复用是在单线程模式下实现多线程的效果,实现一个多I/O并发的效果.看一个简 ...