背景

Linux 下某个目录下有小文件好几万个,命名规则按日期每小时 N 个,想要过滤出指定日期的文件并添加到压缩文件中,记录下脚本化的过程如下。

正则过滤存在的问题

首先,直接进入该目录,由于文件数过多,ls 打印半天出不了结果。
其次,ls | grep命令筛选直接报错:

解决办法

网络搜索到 xargs 命令可以批量输出,调整思路如下:
1、批量输出目标目录下的文件名称到某个文件。
2、逐行读取该文件内容,并匹配指定正则。
3、将匹配正则的文件名称输出到中间文件。
4、cat 该文件内容作为 tar 命令的参数,从而导出符合条件的文件到压缩文件
具体 shell 脚本为:

echo 'start.'FILENAME=/home/201902.logcount=0#remove last filerm -f /home/test02.logrm -f /home/201902.logcd /opt/logdata/ls | xargs -n 9 > /home/201902.log# while read file line while read clname2do if [[ "$clname2" =~ data_._201902* ]]; then  echo $clname2 >> /home/test02.log  count=$(($count+1)) fidone

执行上述脚本可完成 2 月份日志数据的导出。

启示录

简单脚本,涉及到几个知识点:

  1. 统计符合条件的文件总数,shell 对变量自增的语法。
  2. xargs 的应用。
  3. shell 循环读取文件的语法。
  4. 正则判断语法

shell grep 变量_Shell应用:巧用xargs 轻松实现上万文件的筛选压缩相关推荐

  1. shell grep 变量_老司机给出的关于 shell 脚本的8个建议,必收!

    这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训.事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条.毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生 ...

  2. Shell环境变量以及set,env,export的区别

    原文连接:http://www.linuxidc.com/Linux/2011-08/40478.htm 一.shell环境变量的分类以及set env export的区别: set:显示(设置)sh ...

  3. linux shell 变量 管道,linux下shell,变量,管道,重定向等基础知识及技巧

    知识点如下: 1,关于shell编程中的变量,shell编程中的变量分为4种 本地变量:只对本系统本用户自己的shell有用 环境变量:对本系统的所有shell都有用  用export来声明变量  例 ...

  4. linux下变量名长度,Linux中shell的变量介绍

    Linux中shell的变量介绍 发布时间:2020-06-24 16:20:39 来源:亿速云 阅读:112 作者:元一 这期内容当中的小编将会给大家带来有关Linux中shell的变量介绍,以专业 ...

  5. linux变量符号生效规则,shell的变量功能

    shell的变量功能 一.什么是变量 变量是bash环境中非常重要的一个内容,那什么是变量呢?简单说就是让一某一个特定字符串来代表另一个比较复杂或者是容易变动的数据. 二.变量的显示与设置:echo ...

  6. Shell编程--变量的类型

    变量的类型 什么是bash变量 bash作为程序设计语言和其它高级语言一样也提供使用和定义变量的功能 name=123 echo $name 123 引用环境变量: $变量名 查看变量: set | ...

  7. shell编程-初始shell及变量

    shell编程 初始shell 程序 语言 编程 ---------------------------------- 语言 自然语言:汉语.英语 计算机语言:c语言.c++.(java php py ...

  8. Linux的Bash——(二)Shell的变量

    2. Shell的变量 2.1 什么是变量? 变量就是以特定的字符串代表不固定的内容 变量的优点又有那些? (1) 可变性与方便性 关于可变性和方便性,我相信如果有接触过至少一门编程语言就能很快Get ...

  9. shell脚本——变量定义

    变量的定义 变量如何定义 变量的定义规则 变量名区分大小写 变量名不能有特殊符号 变量名不能以数字开头 等号两边不能有任何空格 变量的定义方式 基本方式 命令执行结果赋值给变量 交互式定义变量(rea ...

最新文章

  1. Keras ImageDataGenerator用于数据扩充/增强的原理及方法
  2. JS重写提示框(confirm)
  3. 转MFC消息映射梳理
  4. 【问题解决方案】ImportError: No module named ‘openpyxl‘/‘xlrd’
  5. centos7和centos6的区别
  6. 英朗gt仪表盘图标说明_BuildRun低代码开发教程八节 | 图表和仪表盘展示
  7. 如何抓住重点,系统高效地学习数据结构与算法?
  8. leetcode64 最小路径和
  9. 树的基本定义表示方法
  10. Codeforces 1009G Allowed Letters 最大流转最小割 sosdp
  11. 批处理系统、分时操作系统、实时操作系统
  12. Json格式乱码处理方式
  13. mysql504怎么办_php504错误怎么解决
  14. Latex更改参考文献格式
  15. UI设计可供性解析:巧用隐藏的设计力提升用户体验
  16. springboot 当前无法使用此页面(无法打开页面)
  17. 对耳朵伤害最小的耳机类型是哪种?如何保护我们的耳朵?
  18. 投融资项目入门和总结
  19. 一个简单的神经网络,三种常见的神经网络
  20. LibGdx 安装使用

热门文章

  1. C++ Primer 5th笔记(chap 15 OOP)继承中的类作用域
  2. 深度探索C++ 对象模型(2)-类的对象的内存大小_2
  3. 7-1 作业调度算法--先来先服务
  4. 03-CA/TA编程:aes_auth demo
  5. Linux kernel crypto的介绍
  6. Linux内核设计与实现学习笔记目录
  7. http://blog.sina.com.cn/s/blog_458f3c010100n4st.html
  8. 【网络安全】文件上传绕过思路总结
  9. CmRegisterCallback监控注册表框架
  10. 线程池之工作项,等待项,计时项 (存在疑问???)