首页 > 解决方案 > sed 与 find 返回一个字符 11:未终止的 `s' 命令

问题描述

我想使用“sed”+“find” 我的 sed 命令效果很好,但是 find 会返回错误

很棒的 sed 命令 :-)

文件

&& chmod 0750 /tmp/htdocs/bin/cachetool.phar \
&& chown -R 82:82 /tmp/htdocs

很棒的 sed 命令 :-)

sed -r 'N;s/\\([^\\]*\n\s*&& chown -R 82:82)/\1/;P;D' file

结果正常:

    && chmod 0750 /tmp/htdocs/bin/cachetool.phar
    && chown -R 82:82 /tmp/htdocs

错误的 sed + find 命令...

find /tmp/ -name myfile -exec sed -i 'N;s/\\([^\\]*\n\s*&& chown -R 82:82)/\1/;P;D' {} \; 

错误

sed: -e expression #1, char 11: unterminated `s' command

标签: sedfind

解决方案


尝试的一个简单解决方案是将 sed 命令放在一个文件中,然后使用该文件调用 sed ..类似于:

find /tmp/ -name myfile -exec sed -r -f sedfile {} \;

其中sedfile包含
N;s/\\([^\\]*\n\s*&& chown -R 82:82)/\1/;P;D


推荐阅读