如何简化处理路径替换

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

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

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

阅读 4.1k
1 个回答
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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题