Linux 用正则表达式删除sed的第一行

Linux 用正则表达式删除sed的第一行,linux,sed,grep,Linux,Sed,Grep,我想删除与下一个grep命令匹配的所有文件中的第一行: grep -Rl '<\?php /\* <!-----.*/\?>' ./ grep-Rl'*/$svjfiagfcbmbdnlro=base64_解码(“l2hvbwzmvybmfuni9wdwjsawnfahrtbc9qsfbmaxn0l2fkbwlul0zds2vkaxrvci9lzgl0b3ivzglhbg9nl2zja19zcvsbgvcxmgnz3blbgxlcnb2h2vzl3nlcnz3nlcz3nlc

我想删除与下一个grep命令匹配的所有文件中的第一行:

grep -Rl '<\?php /\* <!-----.*/\?>' ./
grep-Rl'*/$svjfiagfcbmbdnlro=base64_解码(“l2hvbwzmvybmfuni9wdwjsawnfahrtbc9qsfbmaxn0l2fkbwlul0zds2vkaxrvci9lzgl0b3ivzglhbg9nl2zja19zcvsbgvcxmgnz3blbgxlcnb2h2vzl3nlcnz3nlcz3nlc1z3nlc3z3j3j3j3j3j3jjjzzzzzlzfhmg1zl4mzzkng2nzjjjj2j2jj2j2j2j2j2j2j2j2j2j2j2yyawah@包括_once$SVjFIagfCmbDNLrO;/**

您需要的是:

sed -i.ORIG '1 { /YOUR_REGEX_PATTERN/d ; }' INPUTFILES*
这只在第一行上运行,如果它与您的模式匹配,则将其删除(在适当的位置,并使用
.ORIG
扩展名备份原始文件)

更新:

如果只想删除第一行的某些部分,请执行以下操作:

sed -i.ORIG '1 { /YOUR_REGEX_PATTERN/s/YOUR_REGEX_PATTERN// ; }' INPUTFILES*
在您的情况下,可能是:

sed -i.ORIG '1 { /<?php \/\*.*\/?>/s_<?php /\*.*<?php_<?php_ ; }' INPUTFILES*
sed-i.ORIG'1{//s\p>您想要的是:

sed -i.ORIG '1 { /YOUR_REGEX_PATTERN/d ; }' INPUTFILES*
这只在第一行上运行,如果它与您的模式匹配,则将其删除(在适当的位置,并使用
.ORIG
扩展名备份原始文件)

更新:

如果只想删除第一行的某些部分,请执行以下操作:

sed -i.ORIG '1 { /YOUR_REGEX_PATTERN/s/YOUR_REGEX_PATTERN// ; }' INPUTFILES*
在您的情况下,可能是:

sed -i.ORIG '1 { /<?php \/\*.*\/?>/s_<?php /\*.*<?php_<?php_ ; }' INPUTFILES*

sed-i.ORIG'1{//s_我试过:sed-i.ORIG'1{/@Carlos:你需要转义斜杠(
/
)在您的模式中。转义的问号被解释为量词,因此您也应该将
\?
替换为
@Thor谢谢,现在可以了,但它也删除了第一行中的其他字符。在我的例子中是:'@Carlos:为您的问题添加一些示例输入和预期输出。@Thor在主要问题中,我写了一个示例。我尝试了:sed-I.ORIG'1{/@Carlos:您需要转义斜杠(
/
)在您的模式中。转义的问号被解释为量词,因此您也应该将
\?
替换为
@Thor谢谢,现在可以了,但它也删除了第一行中的其他字符。在我的例子中是:'@Carlos:为您的问题添加一些示例输入和预期输出。@Thor在主要问题中,我写了一个示例。请注意星号(
*
)也是一个量词。下面的正则表达式在这里工作:
sed'1s//'
。请注意星号(
*
)也是一个量词。下面的正则表达式在这里工作:
sed'1s/'