For loop 查找:`-exec';缺少参数;

For loop 查找:`-exec';缺少参数;,for-loop,sed,while-loop,find,For Loop,Sed,While Loop,Find,全部, 我已经在互联网上搜索过了,我只是找不到适合我具体情况的解决方案,我有点希望你们能帮我:) 我试图对一堆文件进行搜索和替换,但我也尝试从列表中读取并将每一行传递给搜索和替换 以下是我到目前为止得到的信息: for i in `cat list.txt`; do find /var/www/site -type f -exec sed -i -e 's/$i//g' {} \ ; done while read line; do find /var/www/site -type f -e

全部,

我已经在互联网上搜索过了,我只是找不到适合我具体情况的解决方案,我有点希望你们能帮我:)

我试图对一堆文件进行搜索和替换,但我也尝试从列表中读取并将每一行传递给搜索和替换

以下是我到目前为止得到的信息:

for i in `cat list.txt`; do find /var/www/site -type f -exec sed -i -e 's/$i//g' {} \ ; done


while read line; do find /var/www/site -type f -exec sed -i -e 's/$line//g' {} \ ; done <list.txt ; 

我做错了什么???

你需要一个转义的
\
作为
-exec
的最终参数。您有一个转义空间(
\
),然后循环终止
。您想要
\。此外,shell变量不会在单引号中展开,因此在sed字符串上需要双引号。您到底想做什么??您想从列表中查找字符串并将其替换,还是想从列表中查找字符串,然后确认是否有与该字符串匹配的文件,然后进行替换我想从列表中查找字符串并将其删除。然后我想对列表上的所有字符串都这样做。
find: missing argument to `-exec'.