带sed的Linux查找不起作用
我有个大问题。我试图从我的项目中的第一行php文件中删除恶意软件代码,但控制台始终返回: sed:1:“./{PATH_TO_FILE}”:无效的命令代码 我的请求:带sed的Linux查找不起作用,linux,bash,sed,find,Linux,Bash,Sed,Find,我有个大问题。我试图从我的项目中的第一行php文件中删除恶意软件代码,但控制台始终返回: sed:1:“./{PATH_TO_FILE}”:无效的命令代码 我的请求: find . -name "*.php" -type f -exec sed -n -i '1s/.*/<?php/' {} \; find-名称“*.php”-键入f-exec sed-n-i'1s/*/首先,您没有将通配符放在“.php”中。它应该是“*.php” find-名称“*.php” 其次,您忘记在exec子
find . -name "*.php" -type f -exec sed -n -i '1s/.*/<?php/' {} \;
find-名称“*.php”-键入f-exec sed-n-i'1s/*/首先,您没有将通配符放在“.php”中。它应该是“*.php”
find-名称“*.php”
其次,您忘记在exec子句和exec子句末尾添加文件名的占位符(分号):
第三,sed表达式无效。如果要实现的是删除第一行,则“1d”应使其:
-exec sed-n-i'1d'{}代码>
最后,-n似乎会干扰-i,所以只需移除它
您的完整命令应该是:
find-名称“*.php”-类型f-exec sed-i'1d'{}\代码>首先,您没有将通配符放在“.php”中。它应该是“*.php”
find-名称“*.php”
其次,您忘记在exec子句和exec子句末尾添加文件名的占位符(分号):
第三,sed表达式无效。如果要实现的是删除第一行,则“1d”应使其:
-exec sed-n-i'1d'{}代码>
最后,-n似乎会干扰-i,所以只需移除它
您的完整命令应该是:
find-名称“*.php”-类型f-exec sed-i'1d'{}\代码>首先,您没有将通配符放在“.php”中。它应该是“*.php”
find-名称“*.php”
其次,您忘记在exec子句和exec子句末尾添加文件名的占位符(分号):
第三,sed表达式无效。如果要实现的是删除第一行,则“1d”应使其:
-exec sed-n-i'1d'{}代码>
最后,-n似乎会干扰-i,所以只需移除它
您的完整命令应该是:
find-名称“*.php”-类型f-exec sed-i'1d'{}\代码>首先,您没有将通配符放在“.php”中。它应该是“*.php”
find-名称“*.php”
其次,您忘记在exec子句和exec子句末尾添加文件名的占位符(分号):
第三,sed表达式无效。如果要实现的是删除第一行,则“1d”应使其:
-exec sed-n-i'1d'{}代码>
最后,-n似乎会干扰-i,所以只需移除它
您的完整命令应该是:
find-名称“*.php”-类型f-exec sed-i'1d'{}\代码>非常感谢!最后我用命令解决了这个问题
LC_ALL=C find . -name "*.php" -type f -exec sed -i '' -e "s/^<\?php.*\?>//" {} \;
LC_ALL=C查找-名称“*.php”-类型f-exec sed-i'-e“s/^/“{}\;
非常感谢!最后我用命令解决了这个问题
LC_ALL=C find . -name "*.php" -type f -exec sed -i '' -e "s/^<\?php.*\?>//" {} \;
LC_ALL=C查找-名称“*.php”-类型f-exec sed-i'-e“s/^/“{}\;
非常感谢!最后我用命令解决了这个问题
LC_ALL=C find . -name "*.php" -type f -exec sed -i '' -e "s/^<\?php.*\?>//" {} \;
LC_ALL=C查找-名称“*.php”-类型f-exec sed-i'-e“s/^/“{}\;
非常感谢!最后我用命令解决了这个问题
LC_ALL=C find . -name "*.php" -type f -exec sed -i '' -e "s/^<\?php.*\?>//" {} \;
LC_ALL=C查找-名称“*.php”-类型f-exec sed-i'-e“s/^/“{}\;
有多少文件?查找-name“.php”-键入f-exec sed-n-i'1s/*/不要试图编辑受感染的文件。换成干净的backups@Mithrandir:不要将-n
与-i
组合:它会截断输入文件,因为-n
会抑制所有(隐式)输出,因此不会将任何内容写回输入文件。我认为@mklement在上面正确回答了您,-n
会阻止输出(无需p
sed命令,但更容易删除-n
)。有多少文件?查找。-name.php-type f-exec sed-n-i'1s/*/不要尝试编辑受感染的文件。将其替换为干净的文件backups@Mithrandir:不要将-n
与-i
组合:它会截断输入文件,因为-n
会抑制所有(隐式)输出,这样就不会将任何内容写回输入文件。我认为@mklement在上面正确回答了您的问题,-n
排除了输出(没有p
sed命令,但只需删除-n
就更容易了)。有多少文件?查找。-name.php“-type f-exec sed-n-i'1s/*/不要尝试编辑受感染的文件。将其替换为干净的文件backups@Mithrandir:不要将-n
与-i
组合:它会截断输入文件,因为-n
会抑制所有(隐式)输出,这样就不会将任何内容写回输入文件。我认为@mklement在上面正确回答了您的问题,-n
排除了输出(没有p
sed命令,但只需删除-n
就更容易了)。有多少文件?查找。-name.php“-type f-exec sed-n-i'1s/*/不要尝试编辑受感染的文件。将其替换为干净的文件backups@Mithrandir:不要将-n
与-i
组合:它会截断输入文件,因为-n
会抑制所有(隐式)输出,这样就不会将任何内容写回输入文件。我认为@mklement在上面正确回答了您的问题,-n
排除了输出(没有p
sed命令,但只需删除-n
)就更容易了。这很好(将-n
与-i
组合实际上会截断输入文件,因为-n
会抑制所有(隐式)输出,因此不会将任何内容写回输入文件)。但是,目的是用优点替换第一行(将-n
与-i
组合实际上会截断输入文件,因为-n
会抑制所有(隐式)输出,因此不会将任何内容写回输入文件)。但是,目的是将第一行替换为优点(将-n
与组合)