Linux实用脚本4:批量统计文件行数&shell 字符串操作
2019-02-22 22:50
1126 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhaogang1993/article/details/87886832
背景
T24银行核心业务系统自带DFE(数据格式化引擎)可以导出相关业务数据(其以XML文件格式存储于ORACLE数据库),导出后形成类似CSV(Comma-Separated Values,逗号分割文件)文件。如今,业务要求批量统计所有导出文件的行数(记录数),因而有此博文。
源码
[code]#!/bin/bash DIR_PATH="/mnt/bnk/interfaces/SGBDW" for file in ` ls $DIR_PATH` do #echo $file COUNT_FILE=${file/%DAT/CTL} #echo $COUNT_FILE LINES=`wc -l $DIR_PATH/$file | gawk '{print $1}'` if [ $LINES -gt 0 ] then echo $file $LINES > $DIR_PATH/$COUNT_FILE else #echo $file : fi done
源码解释
- `ls $DIR_PATH`获取文件夹下所有文件;
- for语句循环遍历所有文件名;
- ${file/%DAT/CTL}使用了shell脚本的字符串替换,字符串$file的后缀匹配子串“DAT”,则将“DAT”替换成“CTL”;有关shell脚本对字符串的操作,请查看扩展字符串章节和参考博文;
- wc -l $DIR_PATH/$file | gawk '{print $1}'统计文件的行数(wc -l),使用gwak取第一个字段(行数)并赋值给变量LINES;
- echo重定向输出统计信息,形成XXX.CTL文件,内容包括XXX.DAT文件名和文件行数。
测试结果
shell字符串操作
- 求字符串长度
[code]jwllinux@jwlLinux ~ $ str="hello world" jwllinux@jwlLinux ~ $ echo ${#str} 11
- 求字符串提取
[code]jwllinux@jwlLinux ~ $ str="hello world" jwllinux@jwlLinux ~ $ echo ${str:6} world
说明:从位置6提取子串
- 求字符串替换
${string/substring/replacement} |
使用$replacement, 来代替第一个匹配的$substring |
${string//substring/replacement} |
使用$replacement, 代替所有匹配的$substring |
${string/#substring/replacement} |
如果$string的前缀匹配$substring, 那么就用$replacement来代替匹配到的$substring |
${string/%substring/replacement} |
如果$string的后缀匹配$substring, 那么就用$replacement来代替匹配到的$substring |
参考
linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
相关文章推荐
- 【shell】linux统计某一文件中字符串“sent ip”出现的次数
- Shell脚本执行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell判断hdfs文件目录是否存在
- Shell脚本统计文件行数的8种方法
- linux下统计文本行数的各种方法之使用shell脚本统计
- Linux系统shell脚本对字符串、数字、文件的判断
- linux运用shell脚本统计列出目录文件个数(学习笔记)
- Linux下统计某个目录下所有源代码行数的Shell脚本;
- Linux的简单shell脚本中修改文件操作
- shell脚本判断linux文件修改时间后执行操作
- Linux下统计某个目录下所有源代码行数的Shell脚本
- Shell脚本统计文件行数的8种方法
- 使用shell脚本统计源码文件中的注释行数.(// , /**/)
- 简易登录,批量执行命令,批量copy文件shell脚本【Linux运维之道之脚本案例】
- [转帖][实用]linux sed 批量替换多个文件中的字符串
- 如何编写简单的Shell脚本(Script)文件之Linux的基本操作
- Linux下统计当前目录下源代码行数的Shell脚本
- Linux下统计某个目录下所有源代码行数的Shell脚本
- linux 批量复制某一类文件shell脚本
- Shell脚本运行hive语句 | hive以日期建立分区表 | linux schedule程序 | sed替换文件字符串 | shell推断hdfs文件文件夹是否存在
- 简易登录,批量执行命令,批量copy文件shell脚本【Linux运维之道之脚本案例】 推荐