当前位置:  开发笔记 > 编程语言 > 正文

DOS到UNIX文件中的路径替换

如何解决《DOS到UNIX文件中的路径替换》经验,为你挑选了1个好方法。

我有一个包含这种路径的文件:

C:\bad\foo.c
C:\good\foo.c
C:\good\bar\foo.c
C:\good\bar\[variable subdir count]\foo.c

我想得到以下文件:

C:\bad\foo.c
C:/good/foo.c
C:/good/bar/foo.c
C:/good/bar/[variable subdir count]/foo.c

请注意,不应修改非匹配路径.

我知道如何使用sed固定数量的子目录中做到这一点,但一个变量号给我找麻烦.事实上,我将不得不使用许多s/x/y/表达式(多达最大深度...不是很优雅).

可能是awk,但这种魔法超出了我的技能.

仅供参考,我需要这个技巧来纠正cygwin平台上的一些gcov二进制文件.


我正在处理二进制文件; 因此,我可能会有以下类型的数据:

bindata\bindata%bindataC:\good\foo.c

应翻译为:

bindata\bindata%bindataC:/good/foo.c

第一个\不得翻译,尽管它是在同一条线上.

但是,我.gcno在编辑此文本时检查了我的文件,看起来所有路径都是零,所以下面的大多数答案都应该适合.



1> Sean Bright..:
sed -e '/^C:\\good/ s/\\/\//g' input_file.txt

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有