首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用dos2unix转换脚本文件

使用dos2unix转换脚本文件
EN

Ask Ubuntu用户
提问于 2014-10-24 16:28:56
回答 1查看 2.5K关注 0票数 1

我想要创建一个脚本来监视我的本地文件夹,每次它收到以frm*开头的文件时,都使用dos2unix来转换它。

这个脚本总是在运行,并且一直在转换相同的文件,这些文件已经被转换了,所以我认为这可能是一个改进。

我现在拥有的是:

代码语言:javascript
复制
while true
do    
    dos2unix //path_to_folder/frm*    
done

有什么帮助吗?谢谢!

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2014-10-24 17:25:54

诀窍是按一定的间隔检查文件夹的内容,并将文件列表与最后一次检查进行比较。由于只需要转换新文件,所以可以跳过上一次列表中的文件。

下面的脚本就是这样做的。它是用python编写的,但是在任何语言中都是一样的。

它所做的:

当脚本启动时,它会在目录中列出文件列表。

然后,在一个循环中,每5秒:

  • 它检查其他文件。
  • 如果找到其他文件,它们将被转换,已经存在的文件将被跳过。
  • 它将最后检查的文件列表设置为“新”初始文件列表。
代码语言:javascript
复制
#!/usr/bin/env python3

import subprocess
import time

directory = "/path/to/your/files"

def current_files():
    read = subprocess.check_output(["ls", directory]).decode("utf-8").strip()
    return [item for item in read.split("\n")]

initial_files = current_files()

while True:
    update = current_files()
    for item in update:
        if (item in initial_files, item.startswith("frm")) == (False, True):
            subprocess.call(["/bin/bash", "-c", "dos2unix", directory+"/"+item])
    initial_files = update
    time.sleep(5)

将脚本复制到一个空文件中,设置文件夹的路径,将其保存为convert.py,然后通过命令在后台运行脚本:

代码语言:javascript
复制
python3 /path/to/convert.py
票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/541083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档