我有一个 html 文件,其中包含这样的一行:
base_url = '',
有时单引号之间可能没有任何内容;有时那里可能有一个网址。如何编写用基本 url 填充字符串的单行 perl 命令?
我试过这个,但它不起作用:
perl -pe 's/(base_url = \')(.+)/https:\/\/www\.example\.com(\',)/eg' -i index.htm
谢谢
我有一个 html 文件,其中包含这样的一行:
base_url = '',
有时单引号之间可能没有任何内容;有时那里可能有一个网址。如何编写用基本 url 填充字符串的单行 perl 命令?
我试过这个,但它不起作用:
perl -pe 's/(base_url = \')(.+)/https:\/\/www\.example\.com(\',)/eg' -i index.htm
谢谢
尝试这个:
s|base_url = '.*?',|base_url = 'https://www.example.com/',|g;
您要求使用单线,但没有说明您使用的是哪种外壳。这很重要。我会假设 bash。这是一种方式:
perl -p -e 's#(base_url *= *)'"'"'.*'"'"'#$1'"'"'https://www.example.com/'"'"'#'
如您所见,困难的部分是在单引号内转义单引号。可能有更简单的方法可以做到这一点,但我不知道那是什么。
有些人似乎不喜欢单引号约定中的单引号转义。我喜欢它,因为您不必担心任何进一步的 shell 逃逸。这是一个带双引号的答案:
perl -p -e "s#(base_url *= *)'.*'#\$1'https://www.example.com/'#"