V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ren2881971
V2EX  ›  程序员

unix 下怎么批量替换文件?

  •  
  •   ren2881971 ·
    ren2881971 · 2014-09-18 11:33:10 +08:00 · 3698 次点击
    这是一个创建于 3507 天前的主题,其中的信息可能已经有所发展或是发生改变。
    从windows ftp到unix的文件 打开后发现 每行末尾多了个^M

    怎么把文件夹所有文件的 ^M都替换没了。。
    11 条回复    2014-09-19 17:49:19 +08:00
    azuginnen
        1
    azuginnen  
       2014-09-18 11:39:03 +08:00
    find .| xargs dos2unix

    这样不知道对不对,cygwin下有这个工具的
    ren2881971
        2
    ren2881971  
    OP
       2014-09-18 13:18:30 +08:00
    @azuginnen 你这个是好几个命令 在一起的?
    ren2881971
        3
    ren2881971  
    OP
       2014-09-18 14:29:56 +08:00
    vi

    :%s/^M$//g 先能去掉单个页面的再说!
    plprapper
        4
    plprapper  
       2014-09-18 14:54:12 +08:00
    dos2unix unix2dos 之类的命令吧
    ooxxcc
        5
    ooxxcc  
       2014-09-18 14:59:05 +08:00
    一楼的是管道,批量处理当前目录下的所有问文件
    zix
        6
    zix  
       2014-09-18 15:01:53 +08:00
    ^M的话用dos2unix应该是可以的
    phycgp
        7
    phycgp  
       2014-09-18 15:04:55 +08:00
    假设你要修改的文件全以 .html 为后缀

    find ./ -name '*.html' -exec dos2unix {} \;
    ren2881971
        8
    ren2881971  
    OP
       2014-09-18 16:10:36 +08:00
    @phycgp 你这个命令是 当前路径下 html后缀的都执行dos2unix 是么?
    phycgp
        9
    phycgp  
       2014-09-18 16:24:34 +08:00
    @ren2881971 当前目录及所有的下级目录
    ren2881971
        10
    ren2881971  
    OP
       2014-09-18 16:26:06 +08:00
    @phycgp 赞一个!
    chaker
        11
    chaker  
       2014-09-19 17:49:19 +08:00   ❤️ 1
    sed -i -e 's/\^M//g' `grep '\^M$' -rl .`
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1044 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:29 · PVG 03:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.