find wwwwwwroota -name txt -exec sed -e 圣d -e 龙d -e 香港d -e 澳门d -e 预言d wwwwwwrootafiletxt ;linux下将上面的代码改为删除包含关键字且将删除的关键字行复制到指定文件中
可以使用以下命令:
find /www/wwwroot/a -name "*.txt" -exec sh -c 'grep -qE "圣|龙|香港|澳门|预言" "$1" && sed -e "/圣/d" -e "/龙/d" -e "/香港/d" -e "/澳门/d" -e "/预言/d" "$1" >> /www/wwwroot/a/file.txt' sh {} ;
这个命令会在 /www/wwwroot/a 目录下查找所有后缀为 .txt 的文件,并将其中包含关键字的行删除,同时将删除的关键字行复制到 /www/wwwroot/a/file.txt 中。
具体来说,-exec 选项会对 find 命令找到的每个文件执行一个命令。在这个例子中,我们使用了一个 shell 脚本来执行命令。其中,$1 代表当前文件的路径。
我们首先使用 grep 命令来检查当前文件中是否包含关键字。如果包含,则使用 sed 命令删除关键字行,并将删除的行追加到 /www/wwwroot/a/file.txt 文件中。注意,在 sed 命令中,我们使用了多个 -e 选项来指定多个删除规则。
最后,我们使用 >> 符号将输出追加到文件中,而不是覆盖文件。这样,我们可以将多个文件的输出追加到同一个文件中
原文地址: https://www.cveoy.top/t/topic/gPoD 著作权归作者所有。请勿转载和采集!