使用正则表达式删除注入

2021-12-24 00:00:00 regex bash sed php

我希望从大约 16,000 多个文件的第 1 行中删除此特定行.

I'm looking to sed this specific line from line 1 of about 16,000+ files.

注入的开始是:

<?php if(!isset($GLOBALS`

Middle of the injection is:
`7860msvd`

And end of the injection is:
`oqggbrtstz-1; ?>

此内容仅在 1 行(第一行)

This content is in 1 line only (the first)

不知道怎么做,但我这里有以下内容;

Not sure how to do it but what I have here is the following;

sed -i -e '1 s/.*<?php if(!isset($GLOBALS.*7860msvd.*oqggbrtstz-1; ?>//g'

error: sed: -e expression #1, char 67: Unmatched ( or (

任何帮助都会很棒.

推荐答案

您遗漏了一些特殊字符,例如 ? 并使用 -r 得到期望结果

You missing to literal some special character like ? and using -r get expect result

sed -ri  '1 s/.*<?php if(!isset($GLOBALS.*7860msvd.*oqggbrtstz-1; ?>//g' File

   -r, --regexp-extended

          use extended regular expressions in the script.

相关文章