多语言(Batch, BASH, Octave, Emacs Lisp, ..)批量处理文件
楔子
有人提了一个问题 如何用C语言编程实现批量处理一个目录里面的所有文件 想起我自己也做过类似的事 就把自己的解决方案分享出来 写完觉得不过瘾 总结一下我的实现方案
以下的方案牵扯可执行文件的时候 都假设这个文件名字是a
读取一个参数进行处理 后面有些只是实现了列举 简单总结一下而已
Batch
1 | for /f "delims=" %%i in ('"dir /b *.txt"') do a.exe %%i |
我很不喜欢Batch 觉得语法好恶心 但百度一下还是能写出来 要点是 dir
的/b
参数实现只输出文件名 完美解决
BASH Shell
写BASH脚本有一种回家的感觉
1 |
|
简洁 高效
如果再加一个&
就并行了 当然Batch也可以并行的 加start
GNU Octave
1 | data_files = dir("*.txt"); |
GNU Octave是Matlab的开源替代 这里有一个专门的函数 也很简单清晰
这是以前写的 删掉了处理数据的部分 做个例子
Emacs Lisp
1 | (let ((default-directory "/tmp")) |
这里也是简单演示一下打开这些文件 mapc
好简洁
Python
搜索来的 用这个库很容易实现
1 | #!/usr/bin/env python2 |
下面留个坑
NodeJS
总结
C因为没有专门的库函数实现 只能用平台相关的 而各种跨平台的语言或软件都能很好的解决这个问题 如果只是要"quick-and-dirty"的解决方案 用各种脚本会好很多 特别是Batch和BASH Shell
或者您可以把评论发在别处,添加指向本页的连接,然后把网址告诉我:
本文标题:多语言(Batch, BASH, Octave, Emacs Lisp, ..)批量处理文件
文章作者:Chris
发布时间:2015-02-04
最后更新:2022-03-23
原始链接:https://chriszheng.science/2015/02/04/Multi-Languages-Process-Files/
版权声明:本博客所有文章除特别声明外,均采用 CC BY 4.0 许可协议。转载请注明出处!
分享