0

我有一个 html 文件,其中包含这样的一行:

base_url = '',

有时单引号之间可能没有任何内容;有时那里可能有一个网址。如何编写用基本 url 填充字符串的单行 perl 命令?

我试过这个,但它不起作用:

perl -pe 's/(base_url = \')(.+)/https:\/\/www\.example\.com(\',)/eg' -i index.htm

谢谢

4

2 回答 2

3

尝试这个:

s|base_url = '.*?',|base_url = 'https://www.example.com/',|g;
于 2013-10-21T21:12:02.020 回答
-1

您要求使用单线,但没有说明您使用的是哪种外壳。这很重要。我会假设 bash。这是一种方式:

perl -p -e 's#(base_url *= *)'"'"'.*'"'"'#$1'"'"'https://www.example.com/'"'"'#'

如您所见,困难的部分是在单引号内转义单引号。可能有更简单的方法可以做到这一点,但我不知道那是什么。

有些人似乎不喜欢单引号约定中的单引号转义。我喜欢它,因为您不必担心任何进一步的 shell 逃逸。这是一个带双引号的答案:

perl -p -e "s#(base_url *= *)'.*'#\$1'https://www.example.com/'#"
于 2013-10-21T21:52:04.937 回答