删除文本文件中的特定关键字并输出到新文件
使用以下代码可以在 /www/wwwroot/a 目录下查找所有后缀为 .txt 的文件,并将包含特定关键字的行删除内容:bashfind /www/wwwroot/a -name '*.txt' -exec sh -c 'grep -qE '圣|龙|香港|澳门|预言' '$1' && sed '/圣/d; /龙/d; /香港/d; /澳门/d; /预言/d' '$1' > /www/wwwroot/a/file.txt' sh {} /;解释:- find /www/wwwroot/a -name '*.txt':在 /www/wwwroot/a 目录下查找所有名为 *.txt 的文件。- -exec sh -c '...' sh {} /;:对于每个找到的文件,执行 sh -c '...' sh {} 命令。其中 {} 代表当前文件路径,sh 表示使用 shell 执行命令。- grep -qE '圣|龙|香港|澳门|预言' '$1':使用 grep 命令在当前文件 ($1) 中查找包含关键字 '圣'、'龙'、'香港'、'澳门'、'预言' 的行。-q 表示静默模式,不输出匹配结果。-E 表示使用扩展正则表达式。- sed '/圣/d; /龙/d; /香港/d; /澳门/d; /预言/d' '$1' > /www/wwwroot/a/file.txt':使用 sed 命令删除当前文件 ($1) 中包含关键字 '圣'、'龙'、'香港'、'澳门'、'预言' 的行。'/圣/d' 表示删除包含 '圣' 的行,其他关键字类似。> 表示将结果输出到 /www/wwwroot/a/file.txt 文件中,覆盖原有内容。注意事项:- 代码中的 '圣|龙|香港|澳门|预言' 可以根据实际需要修改,以删除其他关键字的行。- 如果需要将结果追加到 /www/wwwroot/a/file.txt 文件中,可以将 > 改为 >>。- 代码会覆盖 /www/wwwroot/a/file.txt 文件的内容,请谨慎使用。
原文地址: https://www.cveoy.top/t/topic/oyjX 著作权归作者所有。请勿转载和采集!