借助常见工具快捷实现录音文件的查找与导出[通俗易懂]

借助常见工具快捷实现录音文件的查找与导出

大家好,又见面了,我是全栈君。

近期blhy的客户提出这个需求,对方提供一批来电的流水号,让我们给出对应的录音文件。

传统的情况下,客户方一般须要的是某一段时间内的录音,因为系统中的录音文件的文件名称是依照年月日时分秒这个规则去命名的。所以这样的情况下用命令查找和打包都比較方便。而如今是对方给我们的仅仅是一段时间内的指定流水号。

讲到这里你可能有两种思路:(1)看看这些流水号大致落在哪个时段范围内的,把这段时间内的录音文件所有打包导出,然后再从当中摘取目的文件。(2)将流水号拷贝过来,挨个从系统中去查找和下载录音文件。

个人觉得这两种方法都有点问题,针对思路(1),假设总的录音文件少的话,还比較优点理,假设录音文件多的话。简直就是场灾难,首先你打包文件须要时间。另外你再从当中去找的话。无异于大海捞针。这里先假定录音文件名称和流水号在名称上有相应关系。针对思路(2),挨个查找比較靠谱,可是假设对方给出的列表比較长的话。这就是一项反复的工作,伤神费力,也是一场灾难。

通过观察发现。blhy提供的流水号是与录音文件名称没有直接的关系的,所以我的思路是:先试图通过流水号去找到录音文件名称中的局部或者所有(通过excel去匹配。主要是找到相应关系)。然后组装命令(editplus工具或者其它)。写成shell脚本。通过运行shell脚本去查找这些录音文件并打包压缩,最后通过winSCP工具导出到本地。

于是,依照这个思路,分以下几步走:

 

1、在数据库的call_pickup_specimen_info表中。存储的有流水号与录音文件名称局部的相应关系,流水号是specimen_code这个字段,局部的录音文件名称是userfield_id这个字段。于是通过在数据库中运行查找这两列的sql语句(比如SELECT specimen_code,userfield_id FROM `call_pickup_specimen_info` where specimen_code BETWEEN ‘2014090100110054’ and ‘2014090623595954’)。将这两列的数据查询出来。全选,拷贝到excel中;

2、将查找的流水号数据拷贝到excel的sheet2中。使用excel的VLOOKUP函数,将sheet2中的流水号相应的录音文件名称局部的userfield_id信息匹配出来。

3、通过匹配得到userfield_id信息后,要考虑拼接linux命令了,完整的linux命令类似“find /var/spool/asterisk/monitor/1 -name ‘*20140825*’ | xargs zip “/opt/blhytest.zip”。能够非常明显的看出,我们须要在刚刚匹配出来的userfield_id信息的前后分别加上一段固定的内容。来拼接成我们所须要的linux命令。不喜欢黄师傅用的Notepad++。一直喜欢使用editplus这个文本编辑工具,推荐。将userfield_id拷贝到editplus之后,通过全选文本内容–右键“格式”–行凝视–输入凝视符,这里我写的是“find /var/spool/asterisk/monitor/1 -name ‘*”。也即命令的前半部分;通过“搜索”–“替换”菜单。将“\n”替换为“*’ | xargs zip “/opt/blhytest.zip” \n”,注意勾选以下的“使用正則表達式”,就可以在每行的末尾增加固定的内容,至此我们的命令已经拼接完毕了,非常快,至少比excel要快。

4、将该文件保存为.sh格式的文件,比如我写的是blhyexport.sh,通过winSCP工具上传到server上随意文件夹下。自己记得这个路径即可;

5、使用 “chmod 777 blhyexport.sh”。为该文件授权;

6、通过”./blhyexport.sh”就能够运行该脚本打包录音文件了,屏幕闪现的是一行行的运行过程,整个打包的过程非常快;

7、打包完成。通过winSCP工具。分分钟就能够将打包的录音文件下载到本地了,这个压缩包里面的录音文件正是你想要的。

 

传统的依次复制流水号去查询并下载,须要浪费两三个小时甚至是一下午时间(视任务量多少而定),而使用上述方法,不论任务量有多少,不超过10分钟就能够搞定了。

借助于我们熟悉的excel、editplus、linux命令,能够帮助我们快捷高效地完毕任务。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116644.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • visual studio code适合什么语言_将当前运行的配置备份成初始配置

    visual studio code适合什么语言_将当前运行的配置备份成初始配置VSCode是一款非常好用的编辑器(或者IDE),具有很好的可扩展性,功能比较强大,占用的系统资源也适中,启动速度较快,而且支持全平台,比较适合作为Python开发用的IDE。本文针对Linux(主要是Ubuntu,其他发行版类似),整合一些Python开发相关的配置,仅供刚入坑Linuxer参考。一、VSCode与其他编辑器(或IDE)的比较(1)VSCode与Atom的比较:Atom是一款由g…

  • listnode.val java(string indexof方法)

    ListNode是由自己定义的java中的链表对象类结构如下publicclassListNode{intval;ListNodenext;publicListNode(intx){val=x;}}初始化时必须传值有一列1.给出Input:(2->4->3)+(5->6->4)要求Output:7->0->…

  • 进入zookeeper客户端的操作步骤_ajp连接器配置secretRequired

    进入zookeeper客户端的操作步骤_ajp连接器配置secretRequiredzookeeper客户端使用原生JavaApi操作节点

  • Linux-xsync分发脚本

    Linux-xsync分发脚本xsync集群分发脚本(1)需求:循环复制文件到所有节点的相同目录下(2)需求分析:(a)rsync命令原始拷贝:rsync-av/opt/moduleatguigu@hadoop103:/opt/(b)期望脚本:xsync要同步的文件名称(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)[atguigu@hadoop102~]$echo$PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/ho

  • java链表排序方法_java链表排序

    java链表排序方法_java链表排序插入排序    对链表进行插入排序,是最简单的一种链表排序算法,用于插入排序是迭代的,所以每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。    每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。    插入排序的时间复杂度为O(N^2),空间复杂度为O(1)cla

  • 计算机操作系统学习笔记「建议收藏」

    计算机操作系统学习笔记「建议收藏」第1章计算机系统概述 1.1操作系统的基本概念 1.1.1操作系统的概念 操作系统是计算机系统中最基本的系统软件。 操作系统(OperatingSystem,OS)是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源的分配,进而为用户和其他软件提供方便接口与环境的程序集合。 1.1.2操心系统的特征 操作系统的基本特征包括:并发、共享、虚拟和异步。并发和共享是操作系统两个最基本的特征,两者之间互为存在的条件。​ 1.并发(C

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号