首頁  >  問答  >  主體

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

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

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

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

PHPzPHPz2723 天前823

全部回覆(1)我來回復

  • PHP中文网

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

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

    這樣?


    如果是不想要匹配第一個字符,那麼正則的負向預​​查也能搞定。可惜sed不支持,用Python就是這樣

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

    輸出/tmp-aa-bb.txt

    語句越複雜,可維護性越低,何必動這種心思。

    回覆
    0
  • 取消回覆