登录

linux - 如何简化处理路径替换

我有一个 /tmp/aa/bb.txt 的文件。我现在要把这个路径替换成 tmp-aa-bb.txt

现在的处理方法是 echo "/tmp/aa/bb.txt" | sed "s/\//-/g" | cut -b 2-

想问下是否有命令可以直接匹配替换后面部分。

# Linux
PHPzhongPHPzhong2147 天前557 次浏览

全部回复(1) 我要回复

  • PHP中文网

    PHP中文网2017-04-17 12:01:41

    echo "/tmp/aa/bb.txt" | tr "//m.sbmmt.com/m/" "-" | cut -b 2-
    

    这样?


    如果是不想要匹配第一个字符,那么正则的负向预查也能搞定。可惜sed不支持,用Python就是这样

    # encoding: UTF-8
    import re
    print re.sub(r'(?!^)\/','-', '/tmp/aa/bb.txt')
    

    输出/tmp-aa-bb.txt

    语句越复杂,可维护性越低,何必动这种心思。

    回复
    0
  • 取消回复发送