我有一个html文件,其中包含如下所示的行:
base_url = '',
有时单引号之间可能没有任何内容;有时可能会有一个网址。如何编写使用基本URL填充字符串的单行perl命令?
我试过这个,但它不起作用:
perl -pe 's/(base_url = \')(.+)/https:\/\/www\.example\.com(\',)/eg' -i index.htm
由于
答案 0 :(得分:3)
试试这个:
s|base_url = '.*?',|base_url = 'https://www.example.com/',|g;
答案 1 :(得分:-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/'#"