gpt4 book ai didi

regex - 用反斜杠替换路径中的所有正斜杠(因此,不是所有正斜杠)

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:45 25 4
gpt4 key购买 nike

我有一个文件,文件路径如下

c:/squid/etc/digpass
c:/squid/var/cache
c:/squid/var/logs/access
c:/squid/libexec/logfile
c:/squid/var/logs/cache

我想把/改成\

最好在 sed 中,但如果需要则在 perl 中。或者两者都很棒。

我不能只用 \ 替换 /,因为有一些无辜的 / 情况(即 / 应该保留,/ 不是任何路径的一部分)。

路径匹配正则表达式模式 c:/(\w|/)*

/ 的情况,例如在 URL 中,http:// 或在说“apples/oranges”的评论中。

所以我只想替换那些 c:/..... 路径中的所有/。

我该怎么做?

最好是在 sed 中,但如果是 perl 则很好。如果两者兼而有之,那就太好了。

已添加
响应 fedorqui,获取更多示例数据......以及预期输出和我尝试的结果

#   This is the default Squid configuration file. You may wish
# to look at the Squid home page (http://www.squid-cache.org/)
...
# include /path/to/included/file/squid.acl.config
#
# Includes can be nested up to a hard-coded depth of 16 levels.
...
# auth_param basic program c:/squid/libexec/ncsa_auth c:/squid/etc/passwd
...
access_log c:/squid/var/logs/access.log squid
..

我只想用 \ 重写 c:/ 路径

至于我试过的。我尝试了一个正则表达式来匹配路径

C:\squid\etc>grep -ioP "C:/(\w|/)*" squid.conf
c:/squid/libexec/ncsa_auth
c:/squid/etc/passwd
c:/squid/libexec/digest_auth_pw
......

C:\squid\etc>grep -ioP "C:/(\w|/)*" squid.conf | wc -l
20

我试了一行

sed C:\squid\etc>sed -ir "s#c:/(\w|/)*#"squid2.conf

但我看得出来它永远行不通。我的想法可能是围绕 / 进行捕获,但是路径是可变的,正如您从我的正则表达式中看到的那样匹配路径“C:/(\w|/)*”我真的不能捕获那里的正斜杠。所以我不太明白该怎么做。

最佳答案

您可以进行就地文件编辑,

perl -pe 's!(c:\S+)! ($x=$1) =~ y|/|\\|; $x !egi'

关于regex - 用反斜杠替换路径中的所有正斜杠(因此,不是所有正斜杠),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com